Provisionnement automatisé et idempotent avec Ansible
Cahier des charges
Déployer des VMs et des conteneurs manuellement, de manière identique, est lent et source d’erreurs. L’objectif était d’industrialiser ce provisionnement, de façon reproductible et idempotente.
Solutions choisies
J’ai choisi Ansible, un outil d’infrastructure as code déclaratif et sans agent. Le control node pilote les cibles Linux en SSH, les cibles Windows en WinRM, et Proxmox directement via son API REST. Les playbooks suivent la structure recommandée par Ansible, avec des dossiers dédiés à l’inventaire, aux playbooks et aux rôles. Les secrets sont chiffrés avec Ansible Vault.
Mise en œuvre
Environnement technique :
Ansible - Proxmox - Cloud-Init - Ansible Vault
Tests et imprévus
Le premier déploiement sur un cluster vide a confirmé l’état “changed” attendu. J’ai vérifié l’idempotence en relançant le même playbook sur un cluster partiellement déployé. Résultats : les conteneurs déjà conformes sont restés en état “ok”, et seuls les nouveaux sont passés en “changed”. La connectivité de l’ensemble des machines gérées a été validée. Cependant, WinRM peut se montrer capricieux, et pour éviter tout problème de connectivité, j’aurais dû l’intégrer à mon template Cloud-Init Windows.
Bilan
Le playbook garantit un déploiement reproductible, avec une idempotence vérifiée en conditions réelles. Le pilotage reste aujourd’hui exclusivement en ligne de commande, ce qui limite la délégation à des profils moins techniques. Intégrer Semaphore UI apporterait un tableau de bord centralisé pour le lancement de playbooks, la gestion des inventaires et la planification.