Aller au contenu

Ansible

Ansible est un outil permettant d'automatiser la configuration et le déploiement de systèmes.

Points clés

  • Ansible utilise le format YAML pour décrire les tâches à exécuter.
  • Les scripts de déploiement sont déclaratifs et idempotents (rejouer un script ne provoque pas d'effet de bord).
  • Ansible fonctionne sans agent (connexion SSH ou appel d'API sur les systèmes administrés).
  • Les tâches sont organisées en playbooks, eux-mêmes structurés en rôles réutilisables.
  • Ansible peut gérer des infrastructures complexes via des inventaires statiques ou dynamiques.
  • Ansible doit être exécuté sur un hôte Linux (c.f. docs.ansible.com - Can Ansible run on Windows?) mais est capable de gérer des machines windows avec Ansible à l'aide de modules dédiés.

Installation

curl -sS https://mborne.github.io/outils/ansible/install.sh | bash
curl -sS https://mborne.github.io/outils/ansible/create-venv.sh | bash

Utilisation

# Cas venv : activer l'utilisation de ansible
source ~/ansible-venv/bin/activate

# Tester le fonctionnement
ansible --version
ansible -l localhost -m ping localhost

# Cas venv : arrêter d'utiliser ansible
deactivate

Les principaux exécutables

Ansible se décompose en plusieurs programmes :

Exécutable Fonction
ansible Exécuter une tâche sur les machines d'un inventaire
ansible-playbook Exécuter une liste de tâche (playbook) sur les machines d'un inventaire
ansible-galaxy Création et téléchargement de playbook partagés via galaxy.ansible.com ou via git
ansible-vault Gestion de fichiers chiffrés pour le stockage des secrets

Quelques exemples

Les exemples du cours DevOps avec des VM :

Quelques exemples complémentaires :

Ressources