La lecture des inventaires est plus facile et aisée dans le format INI. Cependant, il vous arrivera de devoir recourir au format YAML pour des raisons de faciliter de parsing et de contrainte de formatage.
Partons d’un inventaire au format INI.
front01 ansible_host=192.168.0.2 front02 ansible_host=192.168.0.3 api01 ansible_host=192.168.0.4 api02 ansible_host=192.168.0.5 [front] front01 front02 [api] api01 api02
Ajoutons des variables globales dans le group_vars all.yml
.
--- env_name: 'dev' # Expected values: dev, prod env_type: 'aws' # Expected values: aws, gcp
La conversion d’un inventaire entre le format INI et YAML est très simple avec la commande ansible-inventory
.
ansible-inventory -i inventories/dev.ini -y --list > inventories/dev.yml
Le résultat au format YAML.
--- all: children: api: hosts: api01: ansible_host: 192.168.0.4 env_name: dev env_type: aws api02: ansible_host: 192.168.0.5 env_name: dev env_type: aws front: hosts: front01: ansible_host: 192.168.0.2 env_name: dev env_type: aws front02: ansible_host: 192.168.0.3 env_name: dev env_type: aws ungrouped: {}