Ansible (Red Hat) est un outil de configuration management agentless, basé sur SSH et des playbooks YAML déclaratifs. Dans ce vault, il apparaît comme provisioner de Packer pour construire une image applicative, à la place de scripts shell enchaînés.


Architecture

HubContenu
Architecture — Vue d’ensembleInventaire, playbooks, roles, variables

Notes détaillées

NoteContenu
Inventaire et connexionhosts, groupes, ansible.cfg, cas particulier Packer
Playbooks et tasksStructure d’un playbook, tasks, modules, idempotence
RolesArborescence standard tasks/ defaults/ vars/ templates/ files/ handlers/ meta/
Variables et handlersPrécédence des variables, notify/handlers

Templating

HubContenu
Templating — Vue d’ensembleJinja2, template vs copy

Notes détaillées

NoteContenu
Jinja2 dans AnsibleSyntaxe {{ }}, filtres (to_json, default…), exemple réel config.json.j2

Commandes

NoteContenu
Commandes Ansibleansible-playbook, ansible (ad-hoc), ansible-galaxy, ansible-vault

Divers

  • Ansible — vue d’ensemble, modèle agentless, idempotence, comparaison avec Terraform/Packer

Concepts essentiels

TermeDéfinition
InventaireListe des machines cibles et de leurs paramètres de connexion
PlaybookFichier YAML décrivant un ou plusieurs plays
PlayAssociation d’un groupe de machines (hosts) et d’une liste de tasks/roles
TaskInvocation d’un module avec des paramètres
ModuleUnité de travail réelle (apt, template, systemd_service…)
RoleRegroupement réutilisable de tasks/variables/fichiers selon une arborescence conventionnelle
HandlerTask déclenchée uniquement par notify, exécutée une fois en fin de play
IdempotenceRejouer un playbook ne change rien si l’état voulu est déjà atteint

En relation avec