Installation Ansible sur une VM Proxmox (Debian/Ubuntu)
Ce guide explique comment installer et configurer Ansible sur une machine virtuelle Debian ou Ubuntu hébergée sur Proxmox. La procédure est reproductible — elle a été validée en conditions réelles.
1. Installation d'Ansible
Étape 1 : Mise à jour du système
Avant toute installation, mettre à jour les paquets du système :
sudo apt update
sudo apt upgrade -y
Étape 2 : Installation d'Ansible
Installer Ansible via le gestionnaire de paquets APT :
sudo apt install ansible -y
Étape 3 : Vérification de l'installation
Confirmer que l'installation s'est bien déroulée :
ansible --version
Cette commande affiche la version d'Ansible ainsi que des informations sur la configuration par défaut.
Étape 4 : Test de la connexion SSH
Vérifier que la connexion SSH fonctionne depuis le nœud de contrôle :
ansible all -m ping -u utilisateur
Remarque : Remplacer utilisateur par le nom d'utilisateur sur les machines distantes.
Un retour pong confirme la connectivité.
2. Paramétrage d'Ansible
Étape 1 : Création d'un dossier de projet
mkdir ~/ansible
cd ~/ansible
Étape 2 : Création de l'inventaire
L'inventaire liste toutes les machines à gérer avec Ansible :
nano hosts
Contenu du fichier hosts :
[webservers]
web1 ansible_host=10.10.50.100 ansible_user=debian
[databases]
db1 ansible_host=10.10.50.101 ansible_user=debian
Explication :
[webservers]et[databases]sont des groupes de machinesweb1etdb1sont des alias pour identifier vos machinesansible_host: adresse IP de la machine distanteansible_user: utilisateur SSH à utiliser
Étape 3 : Test de l'inventaire
ansible all -i hosts -m ping
Si tout est bien configuré, chaque machine répond avec pong.
3. Création d'un playbook pour créer une VM Proxmox
Qu'est-ce qu'un playbook ?
Un playbook est un fichier YAML qui décrit les tâches à automatiser avec Ansible. Il permet de définir précisément les actions à effectuer : installation de paquets, configuration de services, création de VMs, etc.
Étape 1 : Création du fichier playbook
nano create_vm.yml
Étape 2 : Installation du module Proxmox
Avant d'exécuter le playbook, installer la collection Ansible contenant le module Proxmox :
ansible-galaxy collection install community.general
Étape 3 : Configuration du playbook
---
- name: Créer une VM sur Proxmox
hosts: localhost
connection: local
gather_facts: no
tasks:
- name: Créer la VM
community.general.proxmox_kvm:
api_host: "10.10.50.10"
api_user: "root@pam"
api_password: "votre_mot_de_passe"
node: "pve"
vmid: 100
name: "test-vm"
memory: 2048
cores: 2
scsi0: "local-lvm:32,format=qcow2"
state: present
Explication du playbook
hosts: localhost— Le playbook s'exécute sur la machine de contrôleconnection: local— Connexion locale, pas de SSH nécessairegather_facts: no— Désactive la collecte d'informations systèmeapi_host— Adresse IP du serveur Proxmoxapi_user— Utilisateur API Proxmox (root@pam)api_password— Mot de passe (⚠ à remplacer par Ansible Vault en production)node— Nom du nœud Proxmox (par défautpve)vmid— Identifiant unique de la VMmemory— RAM en Mo (2048 = 2 Go)cores— Nombre de cœurs CPUscsi0— Disque de 32 Go (qcow2) sur local-lvmstate: present— Ansible s'assure que la VM existe
Étape 4 : Exécution du playbook
ansible-playbook create_vm.yml
Ansible se connecte à l'API Proxmox et crée la VM. Un résumé des actions est affiché dans le terminal.
Étape 5 : Vérification
Se connecter à l'interface Proxmox (https://IP_PROXMOX:8006) et vérifier
que la VM a bien été créée avec les bons paramètres.
4. Prochaines étapes
Une fois ce playbook maîtrisé, les évolutions possibles :
- Déployer plusieurs VMs simultanément avec des boucles (
loop) - Configurer automatiquement les VMs créées (installation de paquets, réseau)
- Utiliser des variables et des templates Jinja2 pour des playbooks réutilisables
- Créer des rôles Ansible pour structurer les configurations
- Utiliser Ansible Vault pour chiffrer les mots de passe
- Automatiser le déploiement de FreshRSS (en cours)
Ressources complémentaires
Documentation officielle
Mes sources d'apprentissage
- IT-Connect — Tutoriels Ansible en français
- LinuxFR — Guides Proxmox
- Reddit r/ansible — Communauté et exemples
Retour d'expérience
Ce projet m'a permis de découvrir l'Infrastructure as Code et l'automatisation avec Ansible. Les principaux défis rencontrés ont été :
- Syntaxe YAML : Les indentations sont strictes — une erreur d'indentation fait échouer le playbook
- API Proxmox : Comprendre le fonctionnement de l'authentification (token vs mot de passe)
- Modules Ansible : Installation et configuration de la collection
community.general - SSH : Configuration des clés SSH pour l'automatisation sans mot de passe
- Débogage : Utilisation de
ansible-playbook --check(dry run) et-v(verbose)
Cette expérience m'a convaincu de l'importance de l'automatisation dans l'administration système moderne. Je continue à développer mes compétences Ansible pour automatiser davantage de tâches.
Retour à la réalisation Ansible/Proxmox