final: via build server ssh to new server

This commit is contained in:
2026-07-13 17:17:21 +08:00
parent 3192ad1836
commit 99b56d4672
+31 -17
View File
@@ -1,35 +1,44 @@
#!/bin/sh
set -e
NEW_SERVER="172.30.18.199"
SSH_KEY="/root/.ssh/new_runner_ed25519"
# 通过Docker nsenter进入宿主机,在宿主机上执行SSH注册
# 构建服务器上有SSH密钥,可以直接连新服务器
docker run --rm --privileged --pid=host alpine nsenter -t 1 -m -u -n -i sh << 'HOSTCMD'
set -e
echo "=== Testing SSH to new server ==="
echo "=== Host Info ==="
hostname
# 检查密钥是否存在
if [ -f "$SSH_KEY" ]; then
echo "SSH key found at $SSH_KEY"
else
echo "SSH key not found at $SSH_KEY"
echo "Searching for key files..."
find /root/.ssh -type f 2>/dev/null | head -10
find / -name "*ed25519*" -type f 2>/dev/null | head -10
# 找SSH密钥
KEY=""
for k in /root/.ssh/new_runner_ed25519 /root/.ssh/id_ed25519 /root/.ssh/id_xiaoxia_release_ed25519; do
if [ -f "$k" ]; then
KEY="$k"
echo "Found SSH key: $k"
break
fi
done
if [ -z "$KEY" ]; then
echo "No SSH key found, searching..."
ls -la /root/.ssh/ 2>/dev/null
exit 1
fi
# 测试SSH连接
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -i "$SSH_KEY" root@$NEW_SERVER "hostname && echo 'SSH works!'" 2>&1 || echo "SSH failed"
# 测试连接新服务器
echo "=== Testing SSH to 172.30.18.199 ==="
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -i "$KEY" root@172.30.18.199 "hostname && echo 'SSH OK!'" 2>&1
echo "=== Registering 6 new SAAS runners ==="
echo "=== Registering 6 SAAS runners on new server ==="
ssh -o StrictHostKeyChecking=no -i "$SSH_KEY" root@$NEW_SERVER << 'REMOTE'
ssh -o StrictHostKeyChecking=no -i "$KEY" root@172.30.18.199 << 'REMOTE'
set -e
echo "Hostname: $(hostname)"
echo "Remote hostname: $(hostname)"
# 找act_runner
ACT_RUNNER=""
for p in /opt/act-runner/runner-1/act_runner /usr/local/bin/act_runner; do
for p in /opt/act-runner/runner-1/act_runner /opt/act-runner/runner-2/act_runner /usr/local/bin/act_runner; do
if [ -f "$p" ]; then
ACT_RUNNER="$p"
echo "Found act_runner: $p"
@@ -43,6 +52,8 @@ if [ -z "$ACT_RUNNER" ]; then
exit 1
fi
echo "Version: $($ACT_RUNNER --version 2>&1)"
REPO_TOKEN="ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj"
GITEA_URL="https://git.xiaoxiajianji.com"
BASE_DIR="/opt/act-runner"
@@ -59,6 +70,7 @@ for i in 6 7 8 9 10 11; do
--name "saas-runner-${i}" \
--labels "$LABELS" \
--no-interactive 2>&1
cat > /etc/systemd/system/gitea-saas-runner-${i}.service << EOF
[Unit]
Description=Gitea Actions SAAS Runner ${i}
@@ -73,6 +85,7 @@ User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable gitea-saas-runner-${i}
systemctl start gitea-saas-runner-${i}
@@ -85,3 +98,4 @@ systemctl list-units --type=service | grep gitea-saas
REMOTE
echo "=== DONE ==="
HOSTCMD