Le dépôt fait / explique / prouve ce qu'il affirme, vérifiable en une commande. - Phase 1 : docs/audit/affirmations.md — 54 affirmations publiques tracées vers une commande de preuve et un statut (✅/🟡/❌/⚪). - Phase 2 : CLAUDE.md réduit à un pointeur mince ; contradiction SSH levée (le code applique déjà PasswordAuthentication no + AuthenticationMethods publickey, conforme à AGENTS.md) ; section AGENTS « Codex » → « agents IA ». - Phase 3 : parcours démarrage réparé (QUICKSTART renvoyait à un modèle absent, chemins de voûte faux, commandes make périmées) ; make verifier vert (ansible-lint 33 → 0 : site.yml généré nommé, pipefail, name[template]) ; voûte Proxmox unifiée lue par le clonage (all/vault.yml). - Phase 4 : make prouver → docs/audit/preuve-<date>.md, harnais rejouable qui rappelle l'outillage existant (aucune validation réimplémentée). - Phase 5 : parcours QUICKSTART prouvé hors-ligne sur le socle ; modèle socle rendu valide (autorite interne → auto-heberge) ; split-brain d'inventaire corrigé (repli sur le répertoire existant, pas principal/). make prouver : 15 OK, 0 échec, 1 sautée (voûte). ansible-lint : 0 failure. Écarts découverts en cours de traitement (AFF-097..100) : tous résolus. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
77 lines
2.2 KiB
Markdown
77 lines
2.2 KiB
Markdown
# Playbooks Proxmox
|
|
|
|
Ces playbooks pilotent Proxmox par API depuis le poste Ansible.
|
|
|
|
Les valeurs Cloud-Init communes déjà définies sur le modèle Proxmox sont héritées par les clones. Set-OPS ne les redemande pas.
|
|
|
|
## Prérequis du poste Ansible
|
|
|
|
Le clonage Proxmox utilise les modules `community.general.proxmox_*`.
|
|
|
|
Le poste Ansible doit donc avoir :
|
|
|
|
- la collection Ansible `community.general` ;
|
|
- la bibliothèque Python `proxmoxer` disponible dans le Python utilisé par Ansible.
|
|
|
|
Sur Debian, installer généralement :
|
|
|
|
```bash
|
|
sudo apt install python3-proxmoxer
|
|
```
|
|
|
|
Vérification locale :
|
|
|
|
```bash
|
|
python3 -c 'import proxmoxer'
|
|
```
|
|
|
|
Les paramètres non sensibles sont dans :
|
|
|
|
```text
|
|
instance/inventories/production/group_vars/proxmox.yml
|
|
```
|
|
|
|
Assistant terminal (écrit `proxmox.yml` et place le token dans la voûte unifiée) :
|
|
|
|
```bash
|
|
make config
|
|
```
|
|
|
|
Les secrets d'API vivent dans la **voûte unifiée de l'instance** — le token Proxmox aux
|
|
côtés des autres `vault_*`, un seul fichier chiffré, non versionné :
|
|
|
|
```text
|
|
instance/inventories/production/group_vars/all/vault.yml
|
|
```
|
|
|
|
`make config` la sème depuis le gabarit et y place le token. Le clonage lit cette voûte
|
|
unifiée (une `proxmox.vault.yml` séparée reste acceptée en compatibilité). Détail des
|
|
paramètres : [`docs/config-proxmox.md`](../../docs/config-proxmox.md).
|
|
|
|
Créer un clone Debian depuis le modèle :
|
|
|
|
```bash
|
|
make creer-vm \
|
|
HOTE=web-frontal-01 \
|
|
VMID=95301 \
|
|
VLAN=15 \
|
|
ADRESSE_IP=10.0.15.31 \
|
|
PASSERELLE=10.0.15.1 \
|
|
GROUPES="serveur_debian serveur_durci"
|
|
```
|
|
|
|
`VLAN` doit être saisi à chaque création de VM pour éviter de réutiliser par erreur un réseau d'un autre clone.
|
|
|
|
Le disque du clone hérite de la taille du modèle. Pour l'agrandir à la création, fournir explicitement une taille supérieure à celle du modèle :
|
|
|
|
```bash
|
|
make creer-vm HOTE=web-frontal-01 VMID=95301 VLAN=15 ADRESSE_IP=10.0.15.31 PASSERELLE=10.0.15.1 TAILLE_DISQUE=64G GROUPES="serveur_debian serveur_durci"
|
|
```
|
|
|
|
Proxmox ne permet pas de réduire un disque existant.
|
|
|
|
`creer-vm` clone la VM, applique les paramètres Cloud-Init et ajoute l'hôte à l'inventaire. La conformité Ansible reste séparée :
|
|
|
|
```bash
|
|
make deployer HOTE=web-frontal-01
|
|
```
|