Toutes les VM naissaient sur le noeud du gabarit puis migraient. site-cache-01 est la
premiere a etre placee ailleurs, et elle a fait tomber quatre defauts enchaines :
1. l'URL de clonage visait le noeud de DESTINATION, alors que l'API veut celui qui DETIENT
le gabarit ; la destination se dit par `target`. D'ou un 500 sur tout clonage
inter-noeuds. Le noeud du gabarit se decouvre dans l'inventaire du cluster.
2. ce 500 etait avale par failed_when: false + no_log: true. Une assertion le releve
desormais, message de l'API compris.
3. l'attente interrogeait nodes/<destination>/tasks/<UPID> ; la tache vit sur le noeud du
gabarit. 60 tentatives x 10 s pour un clonage termine en 87 s, puis la suite qui reprend
sans un mot. Le noeud se lit dans l'UPID lui-meme.
4. la garde d'apres-attente retombait sur `exitstatus | default('OK')` : une attente qui
n'avait rien observe passait pour un succes. Elle exige d'avoir VU la tache s'arreter.
Et une taille de disque porte toujours son unite : `disque: 40` etait lu comme un
retrecissement, erreur toleree a raison — la machine naissait donc avec les 16 Go du
gabarit au lieu de 40, sans que rien ne le dise.
Le site declare enfin ce qu'il materialise (materialisation: gabarit, stockage,
clone_complet) au lieu de l'heriter du tenant actif.
Chrono : clonage reel 59 s et 87 s pour 3,3 Gio alloues.
42 preuves vertes, ansible-lint profil 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