Applez Nous: +41 22 518 70 00
Contrairement aux gestionnaires de configuration historiques (Puppet, Chef) qui exigeaient l’installation, la mise à jour et la sécurisation d’un logiciel démon (agent) sur chaque machine cible, Ansible fonctionne sans aucun agent :
Une opération Ansible est dite idempotente lorsqu’elle produit exactement le même état final, qu’on l’exécute une seule fois ou cinquante fois de suite, sans altérer le système si l’état désiré est déjà atteint :
Si le paquet nginx est déjà installé dans la version spécifiée, Ansible se contente de signaler ok (vert) sans réinstaller le paquet. S’il était absent, il l’installe et signale changed (jaune).
# Inventaire structuré : inventory.yaml
all:
children:
suisse_romande:
children:
geneve:
hosts:
srv-ge-web01.educasuisse.ch:
ansible_host: 192.168.10.11
srv-ge-web02.educasuisse.ch:
ansible_host: 192.168.10.12
lausanne:
hosts:
srv-vd-db01.educasuisse.ch:
ansible_host: 192.168.20.15
ansible_user: adminsec
vars:
ansible_user: sysadmin
ansible_ssh_private_key_file: ~/.ssh/id_ed25519
Pour exécuter une action ponctuelle sur 50 serveurs en une ligne de commande :
# Tester la connectivité de tous les serveurs du parc
ansible all -i inventory.yaml -m ping
# Redémarrer le service NTP chrony sur tous les serveurs de Genève
ansible geneve -i inventory.yaml -b -m service -a "name=chrony state=restarted"
# Obtenir l'espace disque disponible sur l'ensemble des machines
ansible suisse_romande -i inventory.yaml -a "df -h /"
Option become (-b) : L’option
-bindique à Ansible d’élever ses privilèges viasudosur la cible distante de façon sécurisée et tracée.