Set-OPS-Public/playbooks/proxmox
Daniel Allaire cc6026641f empreintes muettes, courses de premier demarrage, collision de noms
Quatre meta/empreinte.yml declaraient leurs valeurs A LA RACINE, sans la cle
`setops_empreinte:` : collabora, nextcloud, web_dorsal, web_frontal. Le lecteur
les voyait vides et rendait {0,0,0} — en silence. collab-01 s'est retrouvee avec
1 coeur / 1 Go pour porter Nextcloud ET Collabora, et a cesse de repondre en SSH
faute de memoire. Corrigee : 4c/5632Mo. Une garde refuse desormais cette forme.

Un fichier qui existe mais ne dit rien est pire qu'un fichier absent : le repli
aurait donne des valeurs sensees.

Deux courses de premier demarrage :
- le clone rend la main avant que son .conf existe -> attente active sur l'API ;
- le verrou dpkg frappait hors de `common_packages` -> `lock_timeout` pose en
  module_defaults sur les 30 playbooks de groupe, une declaration au lieu de 30.

Au passage, j'ai failli livrer pire que le defaut : une URL coupee avec `>-`
inserait une ESPACE en son milieu. Le lint passait, la requete non.

Enfin : `proxmox_kvm` identifie une VM par son NOM. Une VM heritee homonyme lui
a fait rapporter `ok` sans rien cloner — un deploiement peut donc PARAITRE
reussi alors qu'aucune VM n'existe. Touche D-37 directement.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 16:22:38 -04:00
..
cloner_vm_debian.yml empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
README.md Mise en conformité prouvable : registre d'affirmations + make prouver 2026-07-20 19:53:18 -04:00
supprimer_vm_debian.yml proxmox : pools créés, jeton normalisé, reliquat de voûte supprimé 2026-08-03 15:52:44 -04:00

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 :

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