final: via build server ssh to new server
This commit is contained in:
+31
-17
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user