Ad-hoc opdrachten met Ansible

Nadat je hebt bevestigd dat je Ansible-host kan communiceren met je hosts, kun je ad-hoc opdrachten en playbooks op je servers uitvoeren.

Elke opdracht die je normaal gesproken via SSH op een externe server zou uitvoeren, kan met Ansible worden uitgevoerd op de servers die in je inventarisbestand zijn opgegeven. Je kunt bijvoorbeeld het schijfgebruik op alle servers controleren met:

ansible all -a "df -h"

of op 1 server:

ansible ubuntu-server -a "df -h"
ubuntu-server | CHANGED | rc=0 >>
Filesystem                         Size  Used Avail Use% Mounted on
udev                               1.9G     0  1.9G   0% /dev
tmpfs                              391M  1.3M  390M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   29G  6.6G   21G  24% /
tmpfs                              2.0G     0  2.0G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda2                          976M  198M  712M  22% /boot
/dev/loop0                          55M   55M     0 100% /snap/core18/1880
/dev/loop1                          72M   72M     0 100% /snap/lxd/16099
/dev/loop2                          56M   56M     0 100% /snap/core18/1988
/dev/loop3                          32M   32M     0 100% /snap/snapd/11036
/dev/loop4                          30M   30M     0 100% /snap/snapd/8542
/dev/loop5                          70M   70M     0 100% /snap/lxd/19188
tmpfs                              391M     0  391M   0% /run/user/1001 

De gemarkeerde opdracht df -hkan worden vervangen door elke gewenste opdracht.

Je kunt Ansible-modules ook uitvoeren via ad-hoc-opdrachten, vergelijkbaar met wat we eerder hebben gedaan met de pingmodule voor het testen van de verbinding. Dit is bijvoorbeeld hoe we de aptmodule kunnen gebruiken om de nieuwste versie van vimop alle servers in je inventaris te installeren :

ansible all -m apt -a "name=vim state=latest" 

of op 1 server:

ansible ubuntu-server -m apt -a "name=vim state=latest" 

Je kunt je ook richten op individuele hosts, evenals groepen en subgroepen, wanneer je Ansible-opdrachten uitvoert. Dit is bijvoorbeeld hoe je de uptimevan elke host in de serversgroep zou controleren :

ansible servers -a "uptime" 

We kunnen meerdere hosts specificeren door ze te scheiden met dubbele punten:

ansible server1:server2 -m ping

Voor meer informatie over het gebruik van Ansible, ga naar de officiƫle website van Ansible voor heel veel informatie over het gebruik van Ansible opdrachten.

Laten we kijken naar de kracht van Ansible en dat zijn Ansible-playbooks