📚 Cheatsheet

Une collection organisée de snippets de code pour accélérer votre développement. Parcourez, recherchez et copiez en un clic.

Snippets 12

Retour
Logique - Assertion pour valider l'état
Intermédiaire
- name: Valider que la variable est définie
  ansible.builtin.assert:
    that:
      - ma_variable is defined
      - ma_variable > 10
Logique - Attendre une condition
Intermédiaire
- name: Attendre que le port 80 soit ouvert sur le serveur web
  ansible.builtin.wait_for:
    port: 80
    host: '{{ inventory_hostname }}'
    timeout: 30
Logique - Boucle simple (loop)
Facile
- name: Créer plusieurs utilisateurs
  ansible.builtin.user:
    name: "{{ item }}"
    state: present
  loop:
    - alice
    - bob
Logique - Boucle sur des dictionnaires
Intermédiaire
- name: Créer des utilisateurs avec leurs clés SSH
  ansible.builtin.user:
    name: "{{ item.name }}"
    groups: "{{ item.groups }}"
  loop:
    - { name: 'alice', groups: 'wheel' }
    - { name: 'bob', groups: 'users' }
Logique - Boucler jusqu'à succès
Avancé
- name: Tenter de récupérer une page web jusqu'à succès
  ansible.builtin.uri:
    url: http://example.com/status
    return_content: yes
  register: result
  until: "'READY' in result.content"
  retries: 5
  delay: 10
Logique - Contrôler la granularité de la boucle (loop_control)
Avancé
- name: Itérer avec un label personnalisé
  ansible.builtin.debug:
    msg: "L'utilisateur est {{ item.name }}"
  loop:
    - { name: 'alice', shell: '/bin/bash' }
    - { name: 'bob', shell: '/bin/zsh' }
  loop_control:
    label: "{{ item.name }}"
Logique - Définir le statut 'changé'
Avancé
- name: Script qui ne retourne pas de code de sortie correct
  ansible.builtin.command: /usr/bin/run_script.sh
  register: result
  changed_when: "'UPDATED' in result.stdout"
Logique - Définir une condition d'échec personnalisée
Avancé
- name: Vérifier la sortie de la commande
  ansible.builtin.command: /usr/bin/check_status
  register: result
  failed_when: "'ERROR' in result.stdout"
Logique - Demander une information à l'utilisateur
Intermédiaire
- hosts: all
  vars_prompt:
    - name: "username"
      prompt: "Quel est votre nom d'utilisateur ?"
      private: no

  tasks:
    - name: Afficher le nom d'utilisateur
      ansible.builtin.debug:
        msg: "Bonjour, {{ username }}"
Logique - Gestion d'erreurs avec block/rescue
Avancé
block:
  - name: Tenter une opération risquée
    ansible.builtin.command: /usr/bin/risky_operation
rescue:
  - name: Action de secours en cas d'erreur
    ansible.builtin.debug:
      msg: "L'opération risquée a échoué. On continue."
Logique - Ignorer les erreurs
Facile
- name: Lancer une commande qui peut échouer
  ansible.builtin.command: /usr/bin/commande_instable
  ignore_errors: yes
Logique - Tâche conditionnelle (when)
Facile
- name: Installer Apache sur les serveurs Debian
  ansible.builtin.apt:
    name: apache2
  when: ansible_os_family == "Debian"