-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy_to_lxc.sh
More file actions
51 lines (44 loc) · 1.84 KB
/
Copy pathdeploy_to_lxc.sh
File metadata and controls
51 lines (44 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
# deploy_to_lxc.sh — 将 skill 部署到 PVE LXC-110
# 在你的 Windows 机器上用 Git Bash 或 WSL 运行,或者直接在 PVE 宿主机运行
LXC_HOST="10.0.0.100"
LXC_ID="110"
SKILL_NAME="video-clipper"
SKILL_DIR="$(cd "$(dirname "$0")" && pwd)"
REMOTE_SKILL_PATH="/root/.hermes/skills/$SKILL_NAME"
echo "🚀 部署 $SKILL_NAME 到 LXC-$LXC_ID (${LXC_HOST})"
echo "本地路径: $SKILL_DIR"
echo "目标路径: pct exec $LXC_ID -- $REMOTE_SKILL_PATH"
echo ""
# 方式1:通过 PVE 宿主机 pct exec 传输(推荐)
if command -v ssh &>/dev/null; then
echo "📦 打包 skill..."
TMPTAR="/tmp/${SKILL_NAME}.tar.gz"
tar -czf "$TMPTAR" -C "$(dirname "$SKILL_DIR")" "$SKILL_NAME"
echo "📤 上传到 PVE 宿主机..."
scp "$TMPTAR" "root@${LXC_HOST}:/tmp/"
echo "📥 解压到 LXC-${LXC_ID}..."
ssh "root@${LXC_HOST}" "
pct exec ${LXC_ID} -- mkdir -p ${REMOTE_SKILL_PATH}
pct push ${LXC_ID} /tmp/${SKILL_NAME}.tar.gz /tmp/${SKILL_NAME}.tar.gz
pct exec ${LXC_ID} -- bash -c 'tar -xzf /tmp/${SKILL_NAME}.tar.gz -C /root/.hermes/skills/ && chmod +x ${REMOTE_SKILL_PATH}/scripts/*.sh'
echo 'Skill 部署完成'
"
echo ""
echo "✅ 部署完成!"
echo ""
echo "📋 后续步骤:"
echo " 1. 登录 LXC-110:"
echo " ssh root@${LXC_HOST} 然后 pct enter ${LXC_ID}"
echo " 2. 安装依赖:"
echo " bash ~/.hermes/skills/${SKILL_NAME}/scripts/install_deps.sh"
echo " 3. 配置 SMB:"
echo " 参考 ~/.hermes/skills/${SKILL_NAME}/references/smb_setup.md"
echo " 4. 验证环境:"
echo " bash ~/.hermes/skills/${SKILL_NAME}/scripts/check_env.sh"
echo ""
rm -f "$TMPTAR"
else
echo "❌ 未找到 ssh 命令"
echo "请手动将 $SKILL_DIR 目录上传到 LXC-110 的 $REMOTE_SKILL_PATH"
fi