diff --git a/register_runners.sh b/register_runners.sh index 1debddfd4..15dcad4d1 100644 --- a/register_runners.sh +++ b/register_runners.sh @@ -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