Une collection organisée de snippets de code pour accélérer votre développement. Parcourez, recherchez et copiez en un clic.
- name: Valider que la variable est définie
ansible.builtin.assert:
that:
- ma_variable is defined
- ma_variable > 10
- name: Attendre que le port 80 soit ouvert sur le serveur web
ansible.builtin.wait_for:
port: 80
host: '{{ inventory_hostname }}'
timeout: 30
- name: Créer plusieurs utilisateurs
ansible.builtin.user:
name: "{{ item }}"
state: present
loop:
- alice
- bob
- 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' }
- 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
- 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 }}"
- 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"
- name: Vérifier la sortie de la commande
ansible.builtin.command: /usr/bin/check_status
register: result
failed_when: "'ERROR' in result.stdout"
- 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 }}"
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."
- name: Lancer une commande qui peut échouer
ansible.builtin.command: /usr/bin/commande_instable
ignore_errors: yes
- name: Installer Apache sur les serveurs Debian
ansible.builtin.apt:
name: apache2
when: ansible_os_family == "Debian"