feat(vnc): 添加VNC服务器批量部署脚本
- 创建run.sh脚本实现用户批量创建、VNC配置和公共目录设置 - 添加预安装依赖包功能包括XFCE桌面环境和TigerVNC服务 - 实现批量创建10个用户并设置VNC密码的自动化流程 - 配置防火墙规则开放noVNC端口和SSL证书生成 - 创建公共共享目录并为每个用户建立工作区软链接 - 分离setup.sh中的依赖安装逻辑到独立的pre_install.sh脚本 - 移除原有的Python环境初始化代码到新的预安装脚本中
This commit is contained in:
parent
4774e0e47b
commit
3c31ad240d
|
|
@ -0,0 +1,5 @@
|
||||||
|
apt install -y python3.12-dev python3.12-venv
|
||||||
|
python3 -m venv .venv --system-site-packages
|
||||||
|
.venv/bin/python3.12 -m pip install -r requirements.txt
|
||||||
|
playwright install
|
||||||
|
playwright install-deps
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# 需要创建的用户数量
|
||||||
|
USER_COUNT=10
|
||||||
|
PUBLIC_DIR="/shared"
|
||||||
|
|
||||||
|
# 预安装软件
|
||||||
|
pre_install(){
|
||||||
|
sudo apt install -y xfce4 xfce4-goodies
|
||||||
|
sudo apt install -y tigervnc-standalone-server tigervnc-common
|
||||||
|
sudo apt install -y git python3 openssl
|
||||||
|
}
|
||||||
|
|
||||||
|
# 开放防火墙
|
||||||
|
open_firewall(){
|
||||||
|
# 开放防火墙端口(根据实际安全策略调整)
|
||||||
|
sudo ufw allow 6080/tcp # noVNC 主端口
|
||||||
|
sudo ufw allow 6081/tcp # 用户2
|
||||||
|
sudo ufw allow 6082/tcp # 用户3
|
||||||
|
# 注意:VNC原生端口(5901等)不需要开放,因为noVNC作为代理不直接暴露它们
|
||||||
|
}
|
||||||
|
|
||||||
|
# 批量创建用户
|
||||||
|
batch_create_user(){
|
||||||
|
# 批量创建用户 user1 到 user100
|
||||||
|
for i in $(seq 1 $USER_COUNT); do
|
||||||
|
username="user$i"
|
||||||
|
# 创建用户
|
||||||
|
sudo useradd -m -s /bin/bash "$username"
|
||||||
|
# 设置默认密码(与用户名相同,建议后续让用户自行修改)
|
||||||
|
echo "$username:$username" | sudo chpasswd
|
||||||
|
echo "用户 $username 创建完成,密码: $username"
|
||||||
|
done
|
||||||
|
echo "所有用户创建完成!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 批量删除用户
|
||||||
|
batch_delete_user(){
|
||||||
|
for i in $(seq 1 $USER_COUNT); do
|
||||||
|
username="user$i"
|
||||||
|
sudo userdel -r "$username" 2>/dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "已删除用户: $username"
|
||||||
|
else
|
||||||
|
echo "用户 $username 不存在,跳过"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "批量删除完成!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 批量设置vnc密码
|
||||||
|
batch_set_vncpdw(){
|
||||||
|
for i in $(seq 1 $USER_COUNT); do
|
||||||
|
username="user$i"
|
||||||
|
# 使用 -c 参数直接执行命令,避免 heredoc 变量问题
|
||||||
|
sudo su - "$username" -c "mkdir -p ~/.vnc && echo '$username' | vncpasswd -f > ~/.vnc/passwd && chmod 600 ~/.vnc/passwd"
|
||||||
|
echo "正在设置 $username 的VNC密码 "
|
||||||
|
done
|
||||||
|
echo "所有VNC密码设置完成!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 创建公共目录
|
||||||
|
cerate_public_dir(){
|
||||||
|
# 创建目录
|
||||||
|
sudo mkdir -p "$PUBLIC_DIR"
|
||||||
|
# 设置权限:所有用户可读、可写、可执行
|
||||||
|
sudo chmod 777 "$PUBLIC_DIR"
|
||||||
|
# 设置粘滞位(用户只能删除自己的文件)
|
||||||
|
sudo chmod +t "$PUBLIC_DIR"
|
||||||
|
# 设置所有者
|
||||||
|
sudo chown root:root "$PUBLIC_DIR"
|
||||||
|
echo "公共文件夹已创建: $PUBLIC_DIR"
|
||||||
|
echo "权限: $(ls -ld $PUBLIC_DIR)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 在每个用户home目录创建软连接
|
||||||
|
create_shortcut_for_users(){
|
||||||
|
for i in $(seq 1 $USER_COUNT); do
|
||||||
|
username="user$i"
|
||||||
|
# 在用户家目录创建软链接
|
||||||
|
sudo su - "$username" -c "ln -sf $PUBLIC_DIR ~/workspace"
|
||||||
|
echo "正在创建快捷方式 $username"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
install_vnc_server(){
|
||||||
|
cd $PUBLIC_DIR
|
||||||
|
sudo git clone https://github.com/novnc/noVNC.git
|
||||||
|
sudo git clone https://github.com/novnc/websockify.git
|
||||||
|
}
|
||||||
|
|
||||||
|
create_ssl_cert(){
|
||||||
|
cd $PUBLIC_DIR/noVNC
|
||||||
|
sudo openssl req -new -x509 -days 365 -nodes \
|
||||||
|
-out self.pem \
|
||||||
|
-keyout self.pem \
|
||||||
|
-subj "/C=CN/ST=Beijing/L=Beijing/O=Test/CN=localhost"
|
||||||
|
}
|
||||||
|
|
||||||
|
# batch_create_user
|
||||||
|
# batch_set_vncpdw
|
||||||
|
# cerate_public_dir
|
||||||
|
# create_shortcut_for_users
|
||||||
|
# install_vnc_server
|
||||||
|
create_ssl_cert
|
||||||
|
# batch_delete_user
|
||||||
5
setup.sh
5
setup.sh
|
|
@ -1,6 +1 @@
|
||||||
apt install -y python3.12-dev python3.12-venv
|
|
||||||
python3 -m venv .venv --system-site-packages
|
|
||||||
.venv/bin/python3.12 -m pip install -r requirements.txt
|
|
||||||
playwright install
|
|
||||||
playwright install-deps
|
|
||||||
.venv/bin/python3.12 spider/china_net.py
|
.venv/bin/python3.12 spider/china_net.py
|
||||||
Loading…
Reference in New Issue