Playbooks : les bases 20 min de lecture

Structure d'un playbook

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.