Files
xiaoxia-saas/deploy/gpu_worker/scripts/setup-gpu-node.sh
T
xiaoxia 09d33d1cd8 fix(1978): fix xiaoxia-gpu-worker.service bad unit file & log path permissions
- User=%i -> User=ying (%%i is template-only specifier, not valid here)
- After=musetalk.service -> After=musetalk-worker.service (match actual service name)
- Log path from /tmp/ to $HOME/ to avoid permission issues for ying user
2026-09-20 13:18:07 +08:00

64 lines
2.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# GPU节点一键初始化脚本 - 在全新GPU机器上执行
set -e
echo "=== 1. 安装系统依赖 ==="
sudo apt-get update -qq
sudo apt-get install -y -qq python3 python3-pip python3-venv ffmpeg wget curl git
echo "=== 2. 创建目录 ==="
mkdir -p ~/projects/MuseTalk ~/projects/gpu-webhook /opt/xiaoxia-gpu-worker
echo "=== 3. 安装nvidia-container-toolkit(如需要Docker==="
# 可选,当前不使用Docker,跳过
# distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
# curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
# curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
# sudo nvidia-ctk runtime configure --runtime=docker
# sudo systemctl restart docker
echo "=== 4. 拉取服务配置和脚本 ==="
REPO_URL="https://git.xiaoxiajianji.com/xiaoxia/xiaoxia-saas/raw/branch/develop/deploy/gpu_worker"
wget -q -O /tmp/musetalk-worker.service "$REPO_URL/musetalk-worker.service"
wget -q -O /tmp/gpu-poll.service "$REPO_URL/gpu-poll.service"
wget -q -O /tmp/gpu-poll.timer "$REPO_URL/gpu-poll.timer"
wget -q -O ~/projects/update-gpu-worker.sh "$REPO_URL/scripts/update-gpu-worker.sh"
wget -q -O ~/projects/gpu-webhook/poll_and_update.sh "$REPO_URL/scripts/poll_and_update.sh"
chmod +x ~/projects/update-gpu-worker.sh ~/projects/gpu-webhook/poll_and_update.sh
echo "=== 5. 安装systemd服务 ==="
sudo cp /tmp/musetalk-worker.service /etc/systemd/system/
sudo cp /tmp/gpu-poll.service /etc/systemd/system/
sudo cp /tmp/gpu-poll.timer /etc/systemd/system/
echo "=== 6. 配置sudo免密 ==="
sudo bash -c 'cat > /etc/sudoers.d/ying-gpu-update << EOF
ying ALL=(ALL) NOPASSWD: /bin/systemctl restart musetalk-worker
ying ALL=(ALL) NOPASSWD: /bin/systemctl restart xiaoxia-gpu-worker
ying ALL=(ALL) NOPASSWD: /bin/systemctl status musetalk-worker
ying ALL=(ALL) NOPASSWD: /bin/systemctl status xiaoxia-gpu-worker
ying ALL=(ALL) NOPASSWD: /bin/systemctl daemon-reload
ying ALL=(ALL) NOPASSWD: /usr/bin/journalctl
ying ALL=(ALL) NOPASSWD: /bin/cp
ying ALL=(ALL) NOPASSWD: /bin/chmod
ying ALL=(ALL) NOPASSWD: /usr/bin/tee
EOF'
sudo chmod 440 /etc/sudoers.d/ying-gpu-update
echo "=== 7. 首次拉取代码并启动服务 ==="
bash ~/projects/update-gpu-worker.sh
sudo systemctl daemon-reload
sudo systemctl enable musetalk-worker xiaoxia-gpu-worker gpu-poll.timer
sudo systemctl start musetalk-worker xiaoxia-gpu-worker gpu-poll.timer
echo "=== 完成! ==="
echo "检查服务状态:"
echo " sudo systemctl status musetalk-worker"
echo " sudo systemctl status xiaoxia-gpu-worker"
echo " sudo systemctl status gpu-poll.timer"
echo "健康检查:curl http://127.0.0.1:7861/health"
echo "更新日志:tail -f ~/gpu-worker-update.log"
echo "轮询日志:tail -f ~/gpu-poll.log"