Les bases sur Ansible
Les principales commandes d'Ansible
Outils | Description | Exemple |
---|---|---|
ansible |
Permet d'exécuter un simple module Ansible sur un inventaire mode ad-hoc(en ligne de commandes) | ansible all -m ping |
ansible-console |
Ouvre une console interactive permettant de lancer plusieurs actions sur un inventaire. | Commands classique |
ansible-config |
Affiche l'ensemble des paramètres Ansible. list : affiche la liste complète des options d'Ansible à disposition. dump : affiche la configuration dans le contexte actuel. view : affiche le contenu d'un fichier de configuration Ansible |
ansible-config[list|dump|view] |
ansible-playbook |
Exécute un playbook Ansible sur un inventaire. | ansible-playbook playbook.yml |
ansible-vault |
Permet de chiffrer des données qui ne doivent pas être divulgué | |
ansible-inventory |
Affiche les données d'un inventaire Ansible | ansible-inventory -i inventory --graph |
ansible-galaxy |
Permet d'installer des roles et des collections Ansible | |
ansible-doc |
Permet d'obtenir de l'aide pour utiliser Ansible. Plutôt pratique pour se guider. | ansible-doc ping . |
Inventaire
L'inventaire statique sous Ansible est un fichier au format INI,Yaml ou Json.
inventaire.ini
[web]
server1
[db]
server2
Plusieurs connexion ssh possible : - user+password - ssh key
Pour ma pars j'utilise use+password, je change donc le fichier inventaire.ini
en :
inventaire.ini
[web]
server1 ansible_ssh_user=root ansible_ssh_pass=password
[db]
server2
[db:vars]
ansible_ssh_user=root
ansible_ssh_pass=password
Il est maintenant possible de lancer des commande Ansible : ansible -i inventaire.ini -m ping web
172.69.0.2 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
La commande a fonctionné avec succès. Cet exemple est assez simple mais pour des tâches plus évoluées nous allons faire appel au playbook (livre de recette) d’Ansible.
DEBUG
Permet de débugger un script Ansible en voyant chaque étade de la commande.
ansible-playbook -i Inv playbook.yml --step -vvv