docs: LOGBOOK + Skill04 更新 — Sprint B-1 + Architecture Review 記錄

- LOGBOOK: 新增 Sprint B-1 完成條目 + 架構Review修復清單
- Skill04 v2.6: 加入 Ansible IaC 目錄結構 + SSH MCP 安全規則

記錄首席架構師 2026-04-11 架構Review指令執行結果

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-11 02:52:29 +08:00
parent 2af4dffcc6
commit a63c586d9a
2 changed files with 87 additions and 0 deletions

View File

@@ -36,6 +36,7 @@
| v2.3 | 2026-03-31 | Claude Code | **📅 Phase 21 定期報告機制規劃 (Weekly/Daily E2E/K3s Report)** |
| v2.4 | 2026-03-31 | Claude Code | **🔧 OTEL gRPC vs HTTP 端點區分 (K8s:24317, CI/CD:24318)** |
| v2.5 | 2026-04-09 | Claude Sonnet 4.6 | **🔴 SSH 自動修復全鏈路 — 雙主機 E2E 閉環 + 12 Bug 修復** |
| v2.6 | 2026-04-11 | Claude Sonnet 4.6 | **Sprint B-1 Ansible IaC 骨架 + Architecture Review 安全修復** |
---
@@ -1276,3 +1277,67 @@ links = DeepLinking.get_all_links(
❌ StrictHostKeyChecking=no舊設定
✅ known_hosts Secret 已建立,改用 StrictHostKeyChecking=yes
```
---
## 🏗️ Sprint B — Ansible Host IaC (2026-04-11)
> **ADR**: ADR-069 Sprint B
> **狀態**: B-1 ✅ 骨架完成B-2/B-3 待開工
### 目錄結構
```
infra/ansible/
├── inventory/
│ ├── hosts.yml # 5 主機110/188/120/121/112
│ └── group_vars/
│ ├── all.yml # 共用變數github_runner_count 等)
│ ├── host_110.yml # swap/docker/keepalived BACKUP
│ └── host_188.yml # docker/keepalived MASTER
├── playbooks/
│ ├── site.yml # 全站入口
│ ├── 110-devops.yml # 110 預期狀態收斂
│ ├── 188-ai-web.yml # 188 預期狀態收斂
│ └── nginx-sync.yml # Nginx conf 同步188 single source of truth
└── roles/
├── nginx/
│ ├── tasks/main.yml
│ └── templates/188-all-sites.conf.j2
├── docker-compose-service/tasks/main.yml
├── swap/tasks/main.yml
└── pm2-service/tasks/main.yml
```
### 執行方式
```bash
# 全站收斂
ansible-playbook -i inventory/hosts.yml playbooks/site.yml
# 單主機
ansible-playbook -i inventory/hosts.yml playbooks/110-devops.yml
ansible-playbook -i inventory/hosts.yml playbooks/188-ai-web.yml
# nginx 同步(需 vault password
ansible-playbook -i inventory/hosts.yml playbooks/nginx-sync.yml --tags 188
# 乾跑
ansible-playbook -i inventory/hosts.yml playbooks/site.yml --check
```
### SSH MCP Provider 安全規則 (ADR-071 MCP-2a)
Architecture Review 發現的安全要求2026-04-11
1. **所有字串參數必須通過 `_validate_param()` 白名單驗證**
- container_name/service: `[a-zA-Z0-9._-]{1,128}`
- compose_dir: 必須以 `/opt/``/srv/` 開頭,禁止 `..`
- domain: FQDN 白名單
- 數值參數: int() + 上下限夾緊
2. **known_hosts 驗證**
- 設定 `SSH_MCP_KNOWN_HOSTS_FILE` 環境變數指向 `ssh-keyscan` 產生的文件
- 未設定時會 warning log但不阻擋內網快速啟動模式
3. **群組 B 工具需 trust_score >= 0.8**(硬編碼守衛)

View File

@@ -6,6 +6,28 @@
---
## 📍 當前狀態 (2026-04-11 — Sprint B-1 完成 + 架構Review修復)
### Sprint B-1 Ansible IaC + Architecture Review (2026-04-11)
| 項目 | 說明 | Commit |
|------|------|--------|
| B-1 Ansible IaC | inventory(5主機) + 4 playbooks + 4 roles 完整骨架 | 0139aa7 |
| ansible-lint CI | `.gitea/workflows/ansible-lint.yml` infra/** 觸發 | 0139aa7 |
| Architecture Review | `feature-dev:code-reviewer` 全面審查5 項高信心問題 | — |
| fix: command injection | ssh_provider `_validate_param()` 白名單驗證 | 2af4dff |
| fix: known_hosts | SSH_MCP_KNOWN_HOSTS_FILE 環境變數 + warning log | 2af4dff |
| fix: 模組副作用 | ALERT_EVENT_TYPES 移回 repository 層靜態定義 | 2af4dff |
| fix: create_task競爭 | KM 轉換改 await + try/except不再靜默丟失 | 2af4dff |
| fix: ORM懶載入 | convert() 加頂層 try/except錯誤 error log | 2af4dff |
**⚠️ 待首席架構師確認**: `2af4dff` 觸發橙區警告telegram_gateway.py
確認後執行: `git push gitea main`
**架構 Review 規則**: 新建 `feedback_architecture_review_gates.md`
---
## 📍 當前狀態 (2026-04-11 夜 — ADR-071 第一批 + MCP Phase 2 全完成)
### ADR-071 第一批 + MCP Phase 2 (2026-04-11 深夜)