Sous Ansible, le principe de fonctionnement tourne autours de 3 choses essentielles :
- L’inventaire (les machines, clientes ou serveurs)
- Les playbooks (Syntaxe YAML définissant les tâches à déployer)
- Les modules (appel de modules spécifiques en fonction de la tâche demandée)
L’inventaire
Il se trouve dans /etc/ansible/hosts
et contient la définition de tous les noeuds (hosts+serveurs) du parc.
Il est possible de définir l’inventaire dans un autre dossier et de le préciser lorsque vous lancer vos playbooks.
Les playbook
Ce sont des fichiers en syntaxe YAML qui définissent les tâches à exécuter sur votre parc, lui même fait appel au fichier d’inventaire.
Construction d’un playbook
Tous les playbooks doivent commencer de la façon suivante :
- name: <Titre> |
Exemple :
- name: Test de ping et de bonjour |
Exécution d’un playbook
Pour lancer un playbook :
# ansible-playbook playbook.yaml |
Si l’inventaire est dans un dossier spécifique :
# ansible-playbook -i /chemin/inventory.yaml playbook.yaml |
Si vous avez besoin de vous connecter aux hôtes distants :
# ansible-playbook -b -k playbook.yaml -u ansible -v |
-b
: become, lance le deploiement sans redemander le mot de passe à chaque opération-k
: demande le mot de passe dans le cas ou il n’y a pas de clés ssh-u
: préciser l’utilisateur (ansible, root, etc.)-v
: verbose
Les modules
Il existe une longue liste de modules sous Ansible. Ils sont nécessaires lorsque vous demander à Ansible d’éxécuter certaine tâche.
Ils commencent tous par :
ansible.builtin.<nomModule>: |
La liste complète : https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html
Documentation
https://docs.ansible.com/ansible/latest/getting_started/index.html
https://docs.ansible.com/ansible/latest/getting_started/get_started_playbook.html
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_privilege_escalation.html#using-become