Files
awoooi/docs/runbooks/OLLAMA-188-RETIREMENT-GATE.md
Your Name f0255e0300
All checks were successful
Code Review / ai-code-review (push) Successful in 10s
chore(ops): 補強 RLS role bootstrap gate
2026-05-12 18:36:35 +08:00

5.2 KiB
Raw Blame History

188 Legacy Ollama 退場 Gate

目的

192.168.0.188:11434 已不再是 AWOOOI / AwoooP 的 Ollama provider。正式順序是

  1. GCP-A192.168.0.110:11435
  2. GCP-B192.168.0.110:11436
  3. Local 111192.168.0.110:11437
  4. Gemini / Claude雲端備援不是主路徑

188 主機仍承載 PostgreSQL、Redis、SigNoz、OpenClaw 等服務,所以不能把「解除 188 Ollama」誤解成「動 188 主機」。退場只針對 ollama.service:11434

退場前不變式

  • repo runtime 不得再出現 ollama_188OLLAMA_188Ollama188Provider192.168.0.188:11434
  • awoooi-prodawoooi-dev live env 不得指向 192.168.0.188:11434
  • Prometheus live config 不得再探測 192.168.0.188:11434
  • 188 的 Ollama journal 在觀察窗口內不得有 /api/generate/api/chat/v1/chat/completions 推理 POST。
  • 192.168.0.121 不得再固定對 188 /api/tags 做 dev health check。
  • 188 不得以 0.0.0.0:11434 / *:11434 監聽;允許狀態只有 ollama.service active 且綁定 127.0.0.1:11434

檢查方式

scripts/ops/ollama188-retirement-gate.sh

可調整觀察窗口:

POST_SINCE="24 hours ago" HEALTH_SINCE="10 minutes ago" scripts/ops/ollama188-retirement-gate.sh

階段決策

階段 條件 動作
Observe Gate 仍有 failures 不停止服務,只繼續追來源
Stop Gate 連續 24 小時綠燈 可執行 systemctl stop ollama,保留 binary 與模型
Disable Stop 後 48 小時無回歸 systemctl disable ollama
Uninstall Disable 後 7 天無回歸,且確認無其他專案依賴 才評估移除套件與模型資料

192.168.0.88 的正確判讀

192.168.0.88 不是 AWOOOI 的下游專案主機。188 上的路由顯示:

default via 192.168.0.88 dev ens160

因此 Ollama journal 中的 192.168.0.88 應視為 gateway / NAT / port-forward / hairpin 來源。若看到它打 /api/generate/api/chat/v1/chat/completions,代表 188 的 :11434 曾經暴露給 gateway 入口,不是正常 tenant 依賴。

緊急封口

若發現 188 Ollama 又變成 *:11434,可先執行臨時封口:

scripts/ops/ollama188-localhost-containment.sh

臨時封口會:

  • kill 目前 ollama 使用者的 /usr/local/bin/ollama serve
  • 以同一個 ollama 使用者重啟一個只綁 127.0.0.1:11434 的進程。
  • 192.168.0.188:11434 從 LAN / gateway 視角拒絕連線。

限制:

  • 若 systemd override 尚未完成永久修復,原服務仍可能因 root-owned override 裡的 OLLAMA_HOST=0.0.0.0 而反覆 restart 失敗。
  • 這是安全封口,不是乾淨的永久狀態。

永久修法(已封裝為腳本)

目前採用受控 host 修復腳本,透過 188 上 ollama 使用者的 Docker root-equivalent 能力修改 host systemd overrideOLLAMA_HOST 固定為 127.0.0.1:11434,再 daemon-reload 與重啟 ollama.service

scripts/ops/ollama188-systemd-localhost-fix.sh

腳本會做三件事:

  • 備份 /etc/systemd/system/ollama.service.d/override.conf
  • Environment="OLLAMA_HOST=0.0.0.0" 改為 Environment="OLLAMA_HOST=127.0.0.1:11434"
  • 驗證 188 本機 127.0.0.1:11434 可用、LAN 入口 192.168.0.188:11434 拒絕連線。

若需要人工在 188 上重新操作,等效命令如下:

sudo install -d /etc/systemd/system/ollama.service.d
sudo cp /etc/systemd/system/ollama.service.d/override.conf \
  /etc/systemd/system/ollama.service.d/override.conf.bak.$(date +%Y%m%d_%H%M%S)

sudo sed -i 's/Environment="OLLAMA_HOST=0.0.0.0"/Environment="OLLAMA_HOST=127.0.0.1:11434"/' \
  /etc/systemd/system/ollama.service.d/override.conf

sudo systemctl daemon-reload
sudo pkill -u ollama -f "/usr/local/bin/ollama serve" || true
sudo systemctl restart ollama
ss -lntp | grep 11434
curl -sS --max-time 3 http://127.0.0.1:11434/api/tags >/dev/null && echo LOCAL_OK
curl -sS --max-time 3 http://192.168.0.188:11434/api/tags || echo LAN_CLOSED

今日發現

  • awoooi-prod provider registry 已沒有 ollama_188
  • awoooi-dev 原本仍使用 OLLAMA_URL=http://192.168.0.188:11434,已 live patch 到 GCP-A/GCP-B/111 proxy。
  • Prometheus 舊 blackbox target 已移除並 reload避免退役後誤報。
  • 188 journal 中近期少量推理 POST 來源為 192.168.0.88;後續確認 .88 是 188 的 default gateway不是下游主機。
  • 2026-05-06 14:53 短窗口 Gate 綠燈repo、K8s env、Prometheus target、dev health check 均已避開 188。
  • 24 小時 Gate 尚未綠燈:仍看得到 192.168.0.88 在 24 小時內送過推理 POST。
  • 2026-05-06 15:14 已執行臨時封口188 只聽 127.0.0.1:11434從本機、110、K8s Pod 直連 192.168.0.188:11434 均拒絕。
  • 2026-05-06 15:22 已執行永久 systemd 修復:ollama.service activeoverride 固定 OLLAMA_HOST=127.0.0.1:11434,不再有 systemd restart loop。
  • 2026-05-12 18:35 重新跑 24 小時 Gaterepo runtime、awoooi-prod/awoooi-dev live env、Prometheus target、LAN exposure、24 小時推理 POST、dev health check 全部 PASS。判讀188 Ollama 已是 stop candidate但仍不直接 uninstall依階段決策先保留服務、等待明確停用窗口。