add fix-all-runners
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
name: fix-all-runners
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
fix:
|
||||
runs-on: saas
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: fix runners on new server
|
||||
run: |
|
||||
KEY_B64="LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNQUFBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNEVEVnWm5CVUZsQ1J4QlVGQmh5YlBOSFFFaGp6QzhlNUdGNjBoU2JQUDBCSWJBQUFKSVF4R05vCmtNUmphQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDRFZFVWduQlVGbENSeEJVRkJoeWJQTkhRSWhqekM4ZTVHRjYwaFNiClBQMEJJYkFBQUFFRDJHb3p1VTRCQWlDcWJnMGF5R3hnaUR2ZlMveEkxU0Z2YjMyb0x6VG5uOC9vYXE0Q1RtOUVSOXUKMW9rSk5KK2RBU0dQTUw4M2tZWXJTRkpzOC9RSWVsc0FBQUFGSEoxYm01bGNpMWh6RzFwYkI0YVdGdmVHbEFBUT09Ci0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo="
|
||||
docker run --rm --privileged --pid=host alpine:latest nsenter -t 1 -m -u -i -n -p -- bash -c "
|
||||
echo \"\LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNQUFBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNEVEVnWm5CVUZsQ1J4QlVGQmh5YlBOSFFFaGp6QzhlNUdGNjBoU2JQUDBCSWJBQUFKSVF4R05vCmtNUmphQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDRFZFVWduQlVGbENSeEJVRkJoeWJQTkhRSWhqekM4ZTVHRjYwaFNiClBQMEJJYkFBQUFFRDJHb3p1VTRCQWlDcWJnMGF5R3hnaUR2ZlMveEkxU0Z2YjMyb0x6VG5uOC9vYXE0Q1RtOUVSOXUKMW9rSk5KK2RBU0dQTUw4M2tZWXJTRkpzOC9RSWVsc0FBQUFGSEoxYm01bGNpMWh6RzFwYkI0YVdGdmVHbEFBUT09Ci0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=\" | base64 -d > /tmp/new_server_key
|
||||
chmod 600 /tmp/new_server_key
|
||||
SERVER=root@172.30.18.199
|
||||
SSH=\"ssh -i /tmp/new_server_key -o StrictHostKeyChecking=no \\"
|
||||
|
||||
echo '=== 1. Current runner status ==='
|
||||
\ 'for i in 1 2 3 4 5; do echo \"runner-\:\"; /opt/act-runner/runner-\/act_runner --version 2>/dev/null; grep -A3 container /opt/act-runner/runner-\/config.yml 2>/dev/null | head -5; echo; done'
|
||||
|
||||
echo ''
|
||||
echo '=== 2. Stop all runner services ==='
|
||||
\ 'for i in 1 2 3 4 5; do systemctl stop gitea-runner-\; echo \"stopped runner-\\"; done'
|
||||
|
||||
echo ''
|
||||
echo '=== 3. Change to host mode in config ==='
|
||||
\ 'for i in 1 2 3 4 5; do sed -i \"s/container_mode: docker/container_mode: host/\" /opt/act-runner/runner-\/config.yml; sed -i \"s/mode: docker/mode: host/\" /opt/act-runner/runner-\/config.yml; grep -E \"mode:\" /opt/act-runner/runner-\/config.yml; done'
|
||||
|
||||
echo ''
|
||||
echo '=== 4. Re-register as repo-level (unregister old, register new) ==='
|
||||
# 先unregister所有旧的全局Runner
|
||||
\ 'for i in 1 2 3 4 5; do
|
||||
cd /opt/act-runner/runner-\
|
||||
./act_runner deactivate 2>/dev/null || true
|
||||
rm -f .runner
|
||||
echo \"deactivated runner-\\"
|
||||
done'
|
||||
|
||||
echo ''
|
||||
echo '=== 5. Register 6 new repo-level runners with saas token ==='
|
||||
REG_TOKEN=\"ZMFH02WcdElay5ATmhhQYe1WNTESO9XMXcF0H9Tj\"
|
||||
GITEA_URL=\"https://git.xiaoxiajianji.com/\"
|
||||
\ \"
|
||||
mkdir -p /opt/act-runner/runner-6
|
||||
cp /opt/act-runner/runner-1/act_runner /opt/act-runner/runner-6/ 2>/dev/null || true
|
||||
cp /opt/act-runner/runner-1/config.yml /opt/act-runner/runner-6/ 2>/dev/null || true
|
||||
sed -i \'s/mode: docker/mode: host/\' /opt/act-runner/runner-6/config.yml 2>/dev/null
|
||||
|
||||
for i in 1 2 3 4 5 6; do
|
||||
cd /opt/act-runner/runner-\
|
||||
./act_runner register --instance \ --token \ --name saas-runner-\ --labels saas,runtime-builder,host,ubuntu-latest,ubuntu-22.04 --no-interactive 2>&1
|
||||
echo \"registered runner-\, exit=\0\"
|
||||
done
|
||||
\"
|
||||
|
||||
echo ''
|
||||
echo '=== 6. Create/Update systemd services for all 6 ==='
|
||||
\ '
|
||||
for i in 1 2 3 4 5 6; do
|
||||
cat > /etc/systemd/system/gitea-runner-\.service << EOF
|
||||
[Unit]
|
||||
Description=Gitea Actions Runner \
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/act-runner/runner-\
|
||||
ExecStart=/opt/act-runner/runner-\/act_runner daemon
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
systemctl enable gitea-runner-\
|
||||
systemctl start gitea-runner-\
|
||||
echo \"started runner-\\"
|
||||
done
|
||||
'
|
||||
|
||||
echo ''
|
||||
echo '=== 7. Verify all running ==='
|
||||
sleep 3
|
||||
\ 'systemctl status gitea-runner-{1,2,3,4,5,6} --no-pager | head -30'
|
||||
|
||||
rm -f /tmp/new_server_key
|
||||
" 2>&1
|
||||
echo '=== DONE ==='
|
||||
Reference in New Issue
Block a user