docs: synchroniser la doc avec l'état réel du cluster (revue Ansible + incident Qdrant)

- ops/ansible.md : tableau complet des rôles par playbook (15 storage-01, 6 gpu-01),
  caveat hermes_agent, note lm_studio inutilisé
- ia/hermes-auto-improve.md : NOUVEAU — doc du worker déployé (trigger :9095,
  modes du script, endpoints, PR squash, pièges connus)
- k8s/n8n.md : workflow 3 "Hermes Doc Worker" documenté (22h, /trigger/all,
  boucle de polling), clé API → vault
- incidents.md : Qdrant crash-loop depuis 2026-06-05 (segment funk-docs corrompu,
  invisible dans --state=failed) + procédure de réparation
- ia/rag.md : bandeau RAG HS
- CLAUDE.md : état 2026-06-10, rôle hermes_auto_improve, 3 workflows n8n,
  vault complet (n8n_api_key, Gmail au lieu de Brevo), section auto-improve
- README.md : lien admin/ops/cluster.md corrigé, arborescence complète
  (tools/, admin/, progress/, skills), roadmap à jour
- PROGRESS.md : entrée 2026-05-29 (migration NVMe) qui existait sans être référencée
- ansible : suppression effective des templates daily timer (cleanup b9be63c)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Alkatrazz 2026-06-10 15:11:53 +02:00
parent ddff71a0fb
commit 40fd7f0868
10 changed files with 270 additions and 42 deletions

View file

@ -1,10 +1,53 @@
# Ansible — Commandes d'administration
Toutes les commandes se lancent depuis la racine du repo (`lab-infra/`).
Toutes les commandes se lancent depuis la racine du repo (`Funk-lab/`).
Le venv est dans `.venv/`, le `Makefile` fournit les raccourcis.
---
## Playbooks et rôles
Deux playbooks, un par machine (le `site.yml` les enchaîne) :
### `playbooks/storage-01.yml` — hosts `gateway` (15 rôles)
| Rôle | Tag | Ce qu'il gère |
|---|---|---|
| `hermes_user` | `hermes_user` | User `hermes` + clés SSH partagées entre hosts |
| `common` | `common` | Paquets de base, sécurité, NTP |
| `gateway` | `gateway` | nftables + NAT (routeur du LAN cluster) |
| `dnsmasq` | `dnsmasq` | DNS local `lab.local` + wildcard → Traefik |
| `nfs_server` | `nfs_server` | Exports NFS (modèles LLM, volumes k8s) |
| `qdrant` | `qdrant` | Base vectorielle (RAG) — `:6333` |
| `postgresql` | `postgresql` | PG 16 — bases hermes, litellm, n8n, openwebui, grafana |
| `minio` | `minio` | Stockage objet S3 |
| `litellm` | `litellm` | Proxy LLM `:4000` + script `ask-agent` |
| `hermes_agent` | `hermes_agent` | Agent Hermes + skills + souls |
| `rag` | `rag` | Scripts `rag-ingest` / `rag-query` + docs RAG |
| `node_exporter` | `node_exporter` | Métriques Prometheus |
| `alertmanager_webhook` | `alertmanager_webhook` | Pont AlertManager → ask-agent `:9093` |
| `postfix_relay` | `postfix_relay` | SMTP sortant via Gmail (App Password) |
| `hermes_auto_improve` | `hermes_auto_improve` | Worker analyse doc + trigger server `:9095` (schedulé par n8n à 22h) |
### `playbooks/gpu-01.yml` — hosts `gpu_hosts` (6 rôles)
| Rôle | Tag | Ce qu'il gère |
|---|---|---|
| `hermes_user` | `hermes_user` | User `hermes` (clé partagée avec storage-01) |
| `common` | `common` | Paquets de base, sécurité, NTP |
| `rocm` | `rocm` | Stack GPU AMD (ROCm 7.x, `HSA_OVERRIDE_GFX_VERSION=10.3.0`) |
| `nfs_client` | `nfs_client` | Montage `/mnt/models` depuis storage-01 |
| `llama_server` | `llama_server` | llama-server ×3 : GPU `:1234`, CPU `:1236`/`:1237` |
| `node_exporter` | `node_exporter` | Métriques Prometheus (+ rocm power) |
> ⚠️ Le rôle `lm_studio` existe encore dans `ansible/roles/` mais n'est référencé par **aucun** playbook (remplacé par `llama_server` en mai 2026). Candidat à la suppression.
### Caveat premier déploiement — `hermes_agent`
Sur un hôte vierge, il faut **deux runs consécutifs** : le premier installe le binaire (`curl | bash`), le second applique la config (conditionnelle à l'existence du binaire).
---
## Raccourcis Makefile
```bash