Réalisation 2 — Documentation technique

Documentation Technique

Guide d'installation Ansible et création de VMs Proxmox — Procédure reproductible

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.

Environnement : VM Debian (contrôleur Ansible) · Proxmox VE · Réseau 10.10.50.0/24

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 machines
  • web1 et db1 sont des alias pour identifier vos machines
  • ansible_host : adresse IP de la machine distante
  • ansible_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ôle
  • connection: local — Connexion locale, pas de SSH nécessaire
  • gather_facts: no — Désactive la collecte d'informations système
  • api_host — Adresse IP du serveur Proxmox
  • api_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éfaut pve)
  • vmid — Identifiant unique de la VM
  • memory — RAM en Mo (2048 = 2 Go)
  • cores — Nombre de cœurs CPU
  • scsi0 — Disque de 32 Go (qcow2) sur local-lvm
  • state: 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