Ansible

Ici nous essayerons de configurer des vms à l'aide d'ansible. On suppose que les vms ont été créées avec une authentification SSH par clé ( comme fait ici )

D'autres playbook et role ansible dispo sur mon repo arrow-up-right

Préparation de l’environnement SSH

Pour automatiser la configuration des VMs fraîchement créées (IP : 10.10.10.50 à 10.10.10.52), il est recommandé d’utiliser une clé SSH privée et le gestionnaire d’agents SSH pour éviter de ressaisir la passphrase à chaque connexion :

circle-exclamation
ssh-agent bash
ssh-add ~/.ssh/id_rsa

Cela permet à Ansible d’utiliser la clé privée pour se connecter aux VMs sans intervention manuelle.

Structure du répertoire Ansible

Mon arborescence /etc/ansible/ est organisée ainsi :

/etc/ansible/
├── ansible.cfg
├── inventory.ini
├── playbook/
   ├── config-vm-linux.yml
   └── rh-config-vm-linux.yml
├── roles/
   ├── install-package/
   ├── modif-dns/
   └── red-hat-install-package/
└── vault1.yml
  • ansible.cfg : Fichier de configuration principale d’Ansible.

  • inventory.ini : Liste des hôtes (ici, les VMs Proxmox) et leurs IPs.

  • playbook/ : Dossiers contenant les playbooks à exécuter.

  • roles/ : Dossiers de rôles Ansible pour modulariser les tâches (installation de paquets, modification DNS, etc.).

  • vault1.yml : Variables ou secrets chiffrés avec Ansible Vault.

Exemple d’inventaire pour VMs

Dans inventory.ini :

Initialisation et utilisation des rôles

Pour initialiser un nouveau rôle :

Cela crée la structure standard du rôle (tasks, handlers, vars, templates, etc.)

Exemple

circle-check

Ce rôle permet la mise à jour de la liste locale des paquets et l'installation de paquets

Exemple de playbook utilisant des rôles

Dans /etc/ansible/playbook/config-vm-linux.yml :

Ce playbook applique le rôle install-package à toutes les VMs listées dans le groupe kvm_nodes.

Vault

Ansible Vault : Sécuriser les credentials avec chiffrement et déchiffrement

circle-info

Ansible Vault permet de chiffrer (encrypt) et déchiffrer (decrypt) des fichiers ou des variables sensibles utilisés dans vos playbooks Ansible, comme des mots de passe, des clés API ou toute donnée confidentielle. Vault utilise le chiffrement AES256 et fonctionne avec un mot de passe unique pour chiffrer et déchiffrer les contenus.

Création d’un fichier Vault

Pour créer un fichier chiffré contenant vos secrets :

  • Cette commande ouvre votre éditeur de texte (défini par la variable d’environnement EDITOR).

  • Saisissez vos variables sensibles, puis enregistrez et fermez : le fichier sera chiffré.

Édition d’un fichier Vault

Pour modifier un fichier Vault existant :

  • Le fichier est déchiffré temporairement dans l’éditeur, puis rechiffré à la fermeture.

Chiffrer un fichier existant

Pour chiffrer un fichier déjà existant (non chiffré) :

Déchiffrer un fichier Vault

Pour déchiffrer définitivement un fichier Vault (le rendre lisible en clair) :

Exécution du playbook

Assurez vous d’être dans un shell où votre clé privée est chargée avec ssh-agent, puis lancez :

Ansible utilisera la clé privée via l’agent SSH pour se connecter aux VMs et exécuter les rôles définis

Utilisation dans les playbooks

Ansible détecte automatiquement les fichiers Vault lors de l’exécution d’un playbook. Pour fournir le mot de passe Vault :

Saisie interactive :

Last updated