Aller au contenu principal

Les meilleurs patterns Ansible

· 2 minutes de lecture
Stéphane ROBERT

Quels sont les patterns Ansible qui pourraient vous faciliter la vie. C'est le sujet de ce billet.

En cours d'écriture....

Meilleurs patterns

Utilisez la syntaxe des blocs pour regrouper les tâches. Les tâches qui se rapportent les unes aux autres et partagent des attributs ou des balises communes peuvent être regroupées à l'aide de bloquer option. Un autre avantage de cette option est des retours en arrière plus faciles pour les tâches sous le même bloc.

- name: Install, configure, and start an Nginx web server
block:
- name: Update and upgrade apt
ansible.builtin.apt:
update_cache: yes
cache_valid_time: 3600
upgrade: yes

- name: "Install Nginx"
ansible.builtin.apt:
name: nginx
state: present

- name: Copy the Nginx configuration file to the host
template:
src: templates/nginx.conf.j2
dest: /etc/nginx/sites-available/default

- name: Create link to the new config to enable it
file:
dest: /etc/nginx/sites-enabled/default
src: /etc/nginx/sites-available/default
state: link

- name: Create Nginx directory
ansible.builtin.file:
path: /home/ubuntu/nginx
state: directory

- name: Copy index.html to the Nginx directory
copy:
src: files/index.html
dest: /home/ubuntu/nginx/index.html
notify: Restart the Nginx service
when: ansible_facts['distribution'] == 'Ubuntu'
tags: nginx
become: true
become_user: root

Utilisez des handlers pour les tâches à déclencher :

Les handlers permettent d'exécuter une tâche après que quelque chose a changé. Ce gestionnaire sera déclenché en cas de modification du fichier index.html de l'exemple ci-dessus.

handlers:
- name: Restart the Nginx service
service:
name: nginx
state: restarted
become: true
become_user: root