Webux Lab

Par Studio Webux

Ansible Cheatsheet et notes

TG
Tommy Gingras Studio Webux S.E.N.C 2020-09-20

Ansible Cheatsheet et Notes

AD Hoc

Pour ping toutes les machines définies dans le groupe (hosts)

ansible all -m ping

Pour récupérer le uptime il faut utiliser le module command avec l’argument uptime

ansible all -m command -a "uptime"

Pour collecter toutes les informations sur tous les hosts

ansible all -m setup

Pour utiliser un inventaire, il faut ajouter -i hosts

ansible -i inventory/production/hosts all -m setup

Pour utiliser un utilisateur spécifique pour se connecter à la machine remote

ansible all -i hosts -u myUser -m ping

Pour devenir sudo, il faut utiliser l’option -b

Pour installer / désinstaller un package (dans les exemples suivants, le groupe web est spécifié)

Pour installer et désinstaller nginx sur tous les hosts définis dans le groupe web

ansible web -i inventory/production/hosts -u myUser -b -m yum -a "name=nginx state=latest"

ansible web -i inventory/production/hosts -u myUser -b -m yum -a "name=nginx state=absent"

Exemple d’un host file

[web]
1.1.1.1

[video]
1.2.3.4

[storage]
2.3.4.5

Best practices

handlers

Les handlers sont appelés seulement à la fin de l’exécution et seulement si le statut de la tâche a changé (changed_when: yes && changed: true)

Pour exécuter le handler immédiatement, il faut utiliser un meta

Ansible meta

tasks:
  - name: Install nginx
    package:
      name: nginx
      state: latest
    notify: start and enable nginx

  - meta: flush_handlers

handlers:
  - name: start and enable nginx
    service:
      name: nginx
      state: started
      enabled: yes

Roles

Pour créer un nouveau rôle,

cd roles
ansible-galaxy init nom-du-role

Recherche