Ansible - Les bases

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>
hosts: <Nom_groupe_hosts_definies_dans_inventaire>
tasks:
[...] // les tâches à déployer sur les noeuds définis dans le paramètre hosts

Exemple :

- name: Test de ping et de bonjour
hosts: bacasable
tasks:
- name: Ping hosts
ansible.builtin.ping:
- name: Print message
ansible.builtin.debug:
msg: Hello world

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

> Partager <