Syntaxe YAML pour Ansible
Les playbooks Ansible sont ecrits en YAML. Voici les regles de base :
# Les listes utilisent des tirets
- element1
- element2
# Les dictionnaires utilisent cle: valeur
nom: serveur-web
port: 80
# Indentation : 2 espaces (PAS de tabulations)
parent:
enfant1: valeur1
enfant2: valeur2
Structure d'un playbook
# site.yml - Premier playbook
---
- name: Configurer les serveurs web
hosts: webservers
become: yes
vars:
http_port: 80
document_root: /var/www/html
tasks:
- name: Installer Nginx
apt:
name: nginx
state: present
update_cache: yes
- name: Demarrer Nginx
service:
name: nginx
state: started
enabled: yes
- name: Creer la page d'accueil
copy:
content: "<h1>Bienvenue sur {{ inventory_hostname }}</h1>"
dest: "{{ document_root }}/index.html"
owner: www-data
mode: "0644"
Executer un playbook
# Executer le playbook
ansible-playbook site.yml -i inventory/hosts
# Mode check (dry run)
ansible-playbook site.yml --check
# Mode verbose
ansible-playbook site.yml -v # ou -vv, -vvv
# Limiter a certains hotes
ansible-playbook site.yml --limit web1.example.com
Regle d'or : Chaque tache doit avoir un
name descriptif. Cela facilite le debug et la lecture des logs.