Files
awoooi/scripts/reboot-recovery/deploy-to-110.sh
OG T 3f7a742683 fix(infra): 首席架構師 Review 修正 — C1/I1/I2/I3/I4/S1
C1: 移除 deploy-to-110.sh 密碼明文,改用 SSH key + sudoers NOPASSWD
I1: 加入 /var/lock/harbor-repair.lock 防止 watchdog 與 startup 並行修復
I2: docker compose 的 stderr 不再靜默(改用 tee -a log | while read 輸出)
I3: watchdog while loop 包在子 shell + || true,子 shell 異常不終止 watchdog
I4: repair_harbor 關鍵指令(harbor-log 啟動)加入退出碼捕捉
S1: 修復後驗證等待從 5s/10s 改為 30s(harbor-core 初始化需要足夠時間)
S2: docker ps 改用 --filter status=exited 取代 grep/awk

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:18:41 +08:00

57 lines
2.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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)"
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"
# 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/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'"