Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
gfaivre committed Jan 22, 2024
1 parent 4c72345 commit 582b7d9
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 2 deletions.
50 changes: 48 additions & 2 deletions content/blog/cours/ansible/ansible-les-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ Elles permettent de récupérer pas mal d'information parmi lesquelles notamment
On peut les consulter en utilisant par exemple le module `setup` directement en ligne de commande: `ansible -i inventories vm-web-prod-01 -m setup`.
Il est possible de filtrer la sortie affichée par Ansible en utilisant l'option `filter`: `ansible -i inventories vm-web-prod-01 -m setup -a "filter=ansible_default_ipv4"`

Ces « facts » se reveleront fort utiles au fur et à mesure de votre prise en main d'Ansible.
Ces « facts » se révèleront fort utiles au fur et à mesure de votre prise en main d'Ansible.

## Utiliser les variables dans nos playbooks

Expand Down Expand Up @@ -550,6 +550,52 @@ On pourra utiliser différents opérateurs parmi les suivants:
- http://jinja.pocoo.org/docs/templates/#logic
- http://jinja.pocoo.org/docs/templates/#other-operators

**Application pratique :** Nous allons **conditionner l'exécution** de la partie PHP, on peut en effet imaginer avoir des serveurs web ne servant que du contenu statique et qui n'auront donc pas forcément besoin de PHP.

Modifions nos deux tâches concernant PHP comme suit (pour rappel dans `webservers.yml`):

```yaml
...
# PHP
- name: Install PHP-FPM service
ansible.builtin.apt:
name: php-fpm
state: present
when: php.enabled
tags:
- php
- installation
- name: PHP-FPM > Configuration
ansible.builtin.template:
src: "php/app.ini.j2"
dest: "/etc/php/8.2/fpm/conf.d/app.ini"
notify:
- restart_php-fpm
when: php.enabled
tags:
- php
- configuration
...
```

Et notre fichier de variables de groupe `group_vars/webservers.yml`:

```yaml
php:
enabled: false
...
```

En jouant sur l'état de notre variable `php.enabled` nous pouvons donc activer / désactiver l'exécution de nos tâches PHP ce qui donnera:

<figure>
<img src="content/images/blog/2024/cours/ansible/ansible-variables/ansible-playbook-conditionnal.png">
<figcaption>
<span class="figure__legend">Conditionnement d'exécution des tâches.</span>
</figcaption>
</figure>

## Point de progression

Nous avons à présent entre nos mains la quasi totalité des concepts fondamentaux d'Ansible
Expand All @@ -558,7 +604,7 @@ Nous avons à présent entre nos mains la quasi totalité des concepts fondament
- Utiliser l'[inventaire](/blog/cours/ansible/ansible-les-inventaires-statiques);
- Créer des [playbooks](/blog/cours/ansible/ansible-les-playbooks).

La prochaine étape sera orienté sur la réutilisation, l'optimisation et la structuration de ces concepts en introduisant la notion de **roles/collections**.
La prochaine étape sera orientée sur la réutilisation, l'optimisation et la structuration de ces concepts en introduisant la notion de **roles/collections**.

- https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#assigning-a-variable-to-one-machine-host-variables
- https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#assigning-a-variable-to-many-machines-group-variables
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 582b7d9

Please sign in to comment.