Question de l'exploitant : « je ne vois nulle part un MTU a 1450 ». Fondee. Le 1450 existait bien — MTU_OVERLAY_DEFAUT dans underlay.py, dont P23 derive sa garde (transport >= overlay + 50), pose par le devis SDN sur chaque zone, et verifie sur le cluster. Mais il ne se propage pas a la carte de l'invite : les 14 VM tournaient a 1500, et cloner_vm_debian.yml n'avait aucune occurrence de `mtu`. La VM emettait donc des trames que son propre chemin ne pouvait pas encapsuler — la panne que le registre des flux appelle « la plus couteuse a diagnostiquer ». Invisible parce que les 14 VM vivent sur asgard : deux VM du meme hyperviseur communiquent par le pont local, sans encapsulation. Le defaut serait apparu au premier eclatement de la flotte — c'est-a-dire quand il faudra heberger les deux tenants ensemble. Corrige en DEUX endroits, avec `mtu=1` (« herite du pont ») plutot que 1450 en dur : juste en SDN comme hors SDN, et encore juste le jour des trames jumbo. Le GABARIT le porte — proposition de l'exploitant, meilleure que la mienne : elle couvre les clonages qui ne passent pas par le playbook. Et le playbook le repose a chaque clone, parce qu'un gabarit se RECAPTURE et que ce qui n'est pas versionne se perd en silence. make mtu-mesurer (7e devis) rattache chaque hote a sa zone par son pont derive et lit le MTU attendu dans devis_sdn.py. Ecart trouve sur 14 hotes du premier coup, puis confirme corrige. ET J'AI CASSE LA FLOTTE EN CORRIGEANT : applique aux cartes de VM EN MARCHE, le changement detache et rebranche la carte sans que l'invite reconfigure son interface. 0/14 joignables pendant trois minutes. L'agent qemu, independant du reseau invite, a permis de constater et de redemarrer par l'API. Dans le playbook la meme tache s'execute AVANT le demarrage du clone : aucun risque. Sur une VM en service : poser la config, puis redemarrer — une seule d'abord. Verifie : mtu-mesurer CONFORME 14/14 a 1450, prouver.py 35 OK, ansible-lint production. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| cloner_vm_debian.yml | ||
| README.md | ||
| supprimer_vm_debian.yml | ||
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
proxmoxerdisponible dans le Python utilisé par Ansible.
Sur Debian, installer généralement :
sudo apt install python3-proxmoxer
Vérification locale :
python3 -c 'import proxmoxer'
Les paramètres non sensibles sont dans :
instance/inventories/production/group_vars/proxmox.yml
Assistant terminal (écrit proxmox.yml et place le token dans la voûte unifiée) :
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é :
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.
Créer un clone Debian depuis le modèle :
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 :
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 :
make deployer HOTE=web-frontal-01