Déploiement en masse de VMs sandbox de lab sur Proxmox via OpenTofu (clone de template + cloud-init).
- HCL 100%
| assets | ||
| .gitignore | ||
| locals.tf | ||
| main.tf | ||
| outputs.tf | ||
| providers.tf | ||
| README.md | ||
| terraform.tfvars.example | ||
| variables.tf | ||
| versions.tf | ||
deploy-sandbox-vms
Module OpenTofu / Terraform qui déploie en masse des VMs de sandbox sur Proxmox VE.
À partir d'un template, il clone de 1 à 90 VMs identiques et les configure via cloud-init (compte, clé SSH, IP statique, VLAN). Nom, vm_id et adresse IP sont attribués de façon déterministe : le même nombre de VMs produit toujours les mêmes noms et les mêmes IPs, sans collision.
L'idée : monter rapidement un lot de VMs jetables pour un lab, des TP ou un environnement de test, puis tout détruire en une commande.
Comment ça marche
- On indique un template Proxmox et un nombre de VMs.
- Chaque VM reçoit un nom (
9999aaaa,9999aaab, …), unvm_id(9010,9011, …) et une IP fixe (10.1.90.100,…101, …), calculés à partir de son index. cloud-initinjecte le compte et la clé SSH au premier démarrage : les VMs sont utilisables directement, sans configuration manuelle.- En sortie, le module donne la liste des VMs, leurs IPs et les commandes SSH prêtes à copier.
Tout est paramétrable (réseau, ressources CPU/RAM, préfixe de nom…) via des variables, sans toucher au code.
Fichiers
| Fichier | Rôle |
|---|---|
variables.tf |
Paramètres du déploiement (CPU, RAM, Disk, ...) |
locals.tf |
Calcul des noms, vm_id et IPs |
main.tf |
Définition de la VM (clone + cloud-init) |
outputs.tf |
Noms, IPs et commandes SSH générés |
terraform.tfvars.example |
Modèle de configuration à copier |