Lab 09 : Utilisation des Conditions `when`
Objectifs
Section intitulée « Objectifs »Dans ce TP, vous allez apprendre à :
- Utiliser les conditions
whenpour contrôler l’exécution des tâches dans un playbook Ansible. * Gérer l’exécution de tâches en fonction de l’état de l’infrastructure. * Implémenter des tests conditionnels basés sur des variables Ansible et des faits système.
Prérequis
Section intitulée « Prérequis »Avant de commencer ce TP, assurez-vous d’avoir :
- Complété les TPs précédents sur Ansible.
- Configuré AWS CLI et Ansible sur votre machine.
- Des connaissances de base sur les variables et les modules Ansible.
Architecture du TP
Section intitulée « Architecture du TP »Dans ce TP, vous allez apprendre à :
- Créer un playbook qui utilise des conditions
whenpour exécuter des tâches uniquement si certaines conditions sont remplies. - Tester ces conditions sur différents systèmes.
Introduction aux Conditions when
Section intitulée « Introduction aux Conditions when »Les conditions when dans Ansible permettent de contrôler l’exécution des
tâches en fonction de certaines conditions. Celles-ci peuvent être basées sur
des variables définies dans l’inventaire, des faits récupérés lors de
l’exécution ou des résultats de tâches précédentes.
Exemple de Condition Simple
Section intitulée « Exemple de Condition Simple »- Créez un fichier playbook nommé
conditions.yaml:
---- name: Exemple d'utilisation des conditions `when` dans Ansible hosts: all tasks: - name: Installer Apache uniquement sur Ubuntu become: true ansible.builtin.apt: name: apache2 state: present when: ansible_facts['os_family'] == 'Debian'
- name: Installer httpd uniquement sur CentOS become: true ansible.builtin.yum: name: httpd state: present when: ansible_facts['os_family'] == 'RedHat'- Exécutez le playbook sur différents systèmes pour observer l’effet des
conditions :
shell ansible-playbook conditions.yaml - Observez que les tâches sont exécutées en fonction du système d’exploitation.
Utilisation des Variables dans les Conditions
Section intitulée « Utilisation des Variables dans les Conditions »Vous pouvez également utiliser des variables personnalisées dans les conditions
when pour personnaliser l’exécution des tâches.
Exemple avec des Variables
Section intitulée « Exemple avec des Variables »- Modifiez le fichier
conditions.yamlpour ajouter l’utilisation de variables :
---- name: Exemple d'utilisation des variables avec `when` hosts: all vars: package_to_install: nginx service_to_start: nginx tasks: - name: Installer le paquet spécifié become: true ansible.builtin.apt: name: "{{ package_to_install }}" state: present when: ansible_facts['os_family'] == 'Debian'
- name: Démarrer le service spécifié become: true ansible.builtin.service: name: "{{ service_to_start }}" state: started when: ansible_facts['os_family'] == 'Debian'- Exécutez le playbook en modifiant les variables pour tester différents scénarios :
ansible-playbook conditions.yaml- Observez que le paquet et le service sont installés et démarrés en fonction des valeurs des variables.
Conditions Basées sur les Faits
Section intitulée « Conditions Basées sur les Faits »Les faits Ansible permettent de récupérer des informations sur l’hôte cible,
telles que le système d’exploitation, la mémoire disponible, etc. Vous pouvez
utiliser ces faits dans les conditions when pour affiner encore plus
l’exécution des tâches.
Exemple avec des Faits
Section intitulée « Exemple avec des Faits »- Modifiez le fichier
conditions.yamlpour ajouter l’utilisation des faits système :
---- name: Exemple d'utilisation des faits avec `when` hosts: all tasks: - name: Démarrer le service nginx si la mémoire disponible est supérieure à 1 Go become: true ansible.builtin.service: name: nginx state: started when: ansible_facts['memtotal_mb'] > 1024- Exécutez le playbook et observez comment Ansible utilise les faits pour conditionner l’exécution des tâches :
ansible-playbook conditions.yaml- Modifiez les conditions et testez différents scénarios pour observer le comportement en fonction des faits système.
Validation du TP
Section intitulée « Validation du TP »Pour valider ce TP, assurez-vous que :
- Les conditions
whensont utilisées pour contrôler l’exécution des tâches. - Les tâches sont exécutées correctement en fonction des systèmes et des variables. 3. Vous avez expérimenté l’utilisation des faits Ansible pour affiner les conditions.
Challenge
Section intitulée « Challenge »Pour aller plus loin, essayez les défis suivants :
- Créez un playbook qui utilise des conditions
whenpour gérer des services différents en fonction de l’OS. - Implémentez des conditions basées sur l’espace disque disponible pour décider de l’installation de paquets.
- Testez l’intégration des conditions
whenavec des variables d’hôtes spécifiques pour affiner davantage l’exécution des tâches.