serveurs_* -> serveur_, clients_ -> client_, suffixes pluriels au singulier (serveur_web_dorsal/frontal, client_metrique, client_journal). Renommage par tokens exacts : repertoires de roles, playbooks de groupes, group_vars, variables internes des roles (serveur_nginx_*, conformite ansible-lint), groupes du plan, constantes de code, docs. Faux-amis preserves (serveurs_bd, scripts/serveurs.py, fonctions Python). Groupes d'etat gardes au pluriel (hotes_actifs/planifies, modeles_vm). Valide : ansible-lint 0 echec (0 var-naming), diff vide de la generation, node --check, tous les registres. Ajout de .ansible-lint excluant docs/ (registres de donnees, pas du contenu Ansible). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
79 lines
2 KiB
Markdown
79 lines
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
|
|
inventories/lab/group_vars/proxmox.yml
|
|
```
|
|
|
|
Assistant terminal :
|
|
|
|
```bash
|
|
make config
|
|
```
|
|
|
|
Les secrets d'API doivent être dans un fichier Vault non versionné :
|
|
|
|
```text
|
|
inventories/lab/group_vars/proxmox.vault.yml
|
|
```
|
|
|
|
Créer le fichier depuis l'exemple, puis le chiffrer :
|
|
|
|
```bash
|
|
cp inventories/lab/group_vars/proxmox.vault.yml.example inventories/lab/group_vars/proxmox.vault.yml
|
|
ansible-vault encrypt inventories/lab/group_vars/proxmox.vault.yml
|
|
```
|
|
|
|
Créer un clone Debian depuis le modèle :
|
|
|
|
```bash
|
|
make creer-vm \
|
|
HOTE=web-frontal-01 \
|
|
VMID=95301 \
|
|
VLAN=15 \
|
|
ADRESSE_IP=10.1.15.31 \
|
|
PASSERELLE=10.1.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.1.15.31 PASSERELLE=10.1.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
|
|
```
|