Ansible - Construire un inventaire

Pour fonctionner correctement, Ansible a besoin d’un fichier hosts spécifique et d’un playbook (plans d’automatisation) écrits en YAML (ou INI pour l’inventory).

Fichier hosts

Le fichier se place dans /etc/ansible/hosts et référence tous les noeuds que doit traiter Ansible.

Liste des hosts

Format INI

Fichier au format INI :

mail.mondomaine.fr

[webservers]
intranet.mondomaine.fr
wiki.mondomaine.fr

[prod]
cluster01.mondomaine.fr:
cluster02.mondomaine.fr:

[testNode]
LINUX-444.mondomaine.fr:
LINUX-666.mondomaine.fr:

Format YAML

Fichier au format YAML :

all:
hosts:
mail.mondomaine.fr:
children:
webservers:
hosts:
intranet.mondomaine.fr:
wiki.mondomaine.fr:
prod:
hosts:
cluster01.mondomaine.fr:
cluster02.mondomaine.fr:
testNode:
hosts:
LINUX-444.mondomaine.fr:
LINUX-666.mondomaine.fr:

Ajouter des groupes

Il est possible de regrouper des hosts dans le fichier d’inventaire ou en scindant les fichiers dans l’arboressence de /etc/ansible, exemple :

  • /etc/ansible/prod/math
  • /etc/ansible/test/chimie

Format YAML

Fichier au format YAML :

all:
hosts:
mail.mondomaine.fr:
children:
webservers:
hosts:
intranet.mondomaine.fr:
wiki.mondomaine.fr:
math:
hosts:
cluster[01:05].mondomaine.fr:
physique:
hosts:
cluster[06:11].mondomaine.fr:
chimie:
hosts:
cluster[12:24:2].mondomaine.fr: // incrément de 2
prod: // regroupement de math, physique, chimie en prod
children:
math:
physique:
chimie:
test: // regroupement de chimie en test
children:
chimie:

Ajouter des variables

Il est possible de spécifier des variables pour les hosts ou de les regrouper dans le fichier d’inventaire ou en scindant les fichiers dans l’arboressence /etc/ansible, exemple :

  • /etc/ansible/university/adn

Format INI

Fichier au format INI :

[adn]
cluster01
cluster02

[physic]
cluster03

[adn:vars]
ntp_server=ntp.adn.mondomaine.fr
proxy=proxy.adn.mondomaine.fr
ansible_user=emmetbrown

Format YAML

Fichier au format YAML :

adn:
hosts:
cluster01:
cluster02:
vars:
ntp_server: ntp.adn.mondomaine.fr
proxy: proxy.adn.mondomaine.fr
ansible_user=emmetbrown
physic:
hosts:
cluster03:
vars:
ansible_user=marty

Commandes pour l’inventaire

Pour vérifier l’inventaire, la commande ping d’Ansible peut-être utilisée :

# ansible all -m ping
# ansible all:\&prod -m ping
# ansible chimie:\!prod -m ping

Documentation

https://docs.ansible.com/ansible/latest/getting_started/index.html
https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html
https://www.digitalocean.com/community/tutorials/how-to-set-up-ansible-inventories
https://en.wikipedia.org/wiki/YAML

> Partager <