Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
67 lines
3.5 KiB
Bash
67 lines
3.5 KiB
Bash
#!/bin/bash
|
||
# 將 awoooi-startup-110 + harbor-watchdog 部署到 192.168.0.110
|
||
# 2026-04-05 Claude Code: 加入 harbor-watchdog(運行中崩潰自動恢復)
|
||
# 執行方式: bash scripts/reboot-recovery/deploy-to-110.sh
|
||
#
|
||
# 前提: 執行端已 ssh-copy-id wooo@192.168.0.110
|
||
# 且 wooo 有 sudoers NOPASSWD 權限(feedback_cd_security_nopasswd.md)
|
||
|
||
set -euo pipefail
|
||
HOST="wooo@192.168.0.110"
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
ROOT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||
|
||
echo "=== 部署 awoooi-startup-110 + harbor-watchdog 到 192.168.0.110 ==="
|
||
|
||
# 1. 上傳腳本
|
||
echo "[1/5] 上傳啟動腳本..."
|
||
scp "$SCRIPT_DIR/awoooi-startup-110.sh" "$HOST:/tmp/awoooi-startup-110.sh"
|
||
scp "$SCRIPT_DIR/awoooi-startup-110.service" "$HOST:/tmp/awoooi-startup-110.service"
|
||
scp "$SCRIPT_DIR/repair-110-ssh-publickey-auth-local.sh" "$HOST:/tmp/repair-110-ssh-publickey-auth-local.sh"
|
||
scp "$SCRIPT_DIR/recover-110-control-path-and-harbor-local.sh" "$HOST:/tmp/recover-110-control-path-and-harbor-local.sh"
|
||
scp "$ROOT_DIR/ops/runner/check-awoooi-110-controlled-cd-lane-readiness.sh" "$HOST:/tmp/check-awoooi-110-controlled-cd-lane-readiness.sh"
|
||
|
||
# 2. 上傳 watchdog
|
||
echo "[2/5] 上傳 harbor-watchdog..."
|
||
scp "$SCRIPT_DIR/harbor-watchdog.sh" "$HOST:/tmp/harbor-watchdog.sh"
|
||
scp "$SCRIPT_DIR/harbor-watchdog.service" "$HOST:/tmp/harbor-watchdog.service"
|
||
|
||
# 3. 安裝 startup service
|
||
echo "[3/5] 安裝 startup service..."
|
||
ssh "$HOST" "sudo cp /tmp/awoooi-startup-110.sh /usr/local/bin/awoooi-startup-110.sh && \
|
||
sudo chmod +x /usr/local/bin/awoooi-startup-110.sh && \
|
||
sudo cp /tmp/repair-110-ssh-publickey-auth-local.sh /usr/local/bin/repair-110-ssh-publickey-auth-local.sh && \
|
||
sudo chmod +x /usr/local/bin/repair-110-ssh-publickey-auth-local.sh && \
|
||
sudo cp /tmp/recover-110-control-path-and-harbor-local.sh /usr/local/bin/recover-110-control-path-and-harbor-local.sh && \
|
||
sudo chmod +x /usr/local/bin/recover-110-control-path-and-harbor-local.sh && \
|
||
sudo cp /tmp/check-awoooi-110-controlled-cd-lane-readiness.sh /usr/local/bin/check-awoooi-110-controlled-cd-lane-readiness.sh && \
|
||
sudo chmod +x /usr/local/bin/check-awoooi-110-controlled-cd-lane-readiness.sh && \
|
||
sudo cp /tmp/awoooi-startup-110.service /etc/systemd/system/awoooi-startup-110.service && \
|
||
sudo systemctl daemon-reload && \
|
||
sudo systemctl enable awoooi-startup-110.service && \
|
||
echo 'startup OK'"
|
||
|
||
# 4. 安裝 watchdog service(立即啟動)
|
||
echo "[4/5] 安裝並啟動 harbor-watchdog..."
|
||
ssh "$HOST" "sudo cp /tmp/harbor-watchdog.sh /usr/local/bin/harbor-watchdog.sh && \
|
||
sudo chmod +x /usr/local/bin/harbor-watchdog.sh && \
|
||
sudo cp /tmp/harbor-watchdog.service /etc/systemd/system/harbor-watchdog.service && \
|
||
sudo systemctl daemon-reload && \
|
||
sudo systemctl enable harbor-watchdog.service && \
|
||
sudo systemctl restart harbor-watchdog.service && \
|
||
echo 'watchdog OK'"
|
||
|
||
# 5. 驗證
|
||
echo "[5/5] 驗證..."
|
||
ssh "$HOST" "sudo systemctl is-active harbor-watchdog.service && echo '✅ harbor-watchdog active' || echo '❌ harbor-watchdog 失敗'"
|
||
ssh "$HOST" "sudo systemctl is-enabled awoooi-startup-110.service && echo '✅ startup-110 enabled' || echo '❌ startup-110 未啟用'"
|
||
|
||
echo ""
|
||
echo "✅ 部署完成!"
|
||
echo ""
|
||
echo "harbor-watchdog: 每 60 秒檢查 Harbor 健康,不健康自動修復"
|
||
echo "startup-110: 下次重開機後自動恢復所有服務"
|
||
echo ""
|
||
echo "查看 watchdog 狀態:"
|
||
echo " ssh $HOST 'journalctl -u harbor-watchdog.service -f'"
|