Exercice de l’atelier - Utilisation des Variables

Lire ceci dans d’autres langues :
uk Anglais, japan 日本語, brazil Portugais du Brésil, france Français, Español Espagnol.

Table des Matières

Objectif

Prolongeant nos playbooks de l’Exercice 1.3, l’accent est mis sur la création et l’utilisation de variables dans Ansible. Vous apprendrez la syntaxe pour définir et utiliser les variables, une compétence essentielle pour créer des playbooks dynamiques et adaptables.

Guide

Les variables dans Ansible sont des outils puissants pour rendre vos playbooks flexibles et réutilisables. Elles vous permettent de stocker et de réutiliser des valeurs, rendant vos playbooks plus dynamiques et adaptables.

Étape 1 - Comprendre les Variables

Une variable dans Ansible est une représentation nommée de certaines données. Les variables peuvent contenir des valeurs simples comme des chaînes de caractères et des nombres, ou des données plus complexes comme des listes et des dictionnaires.

Étape 2 - Syntaxe et Création de Variables

La création et l’utilisation de variables impliquent une syntaxe spécifique :

  1. Définition des Variables : Les variables sont définies dans la section vars d’un playbook ou dans des fichiers séparés pour les projets plus importants.
  2. Nomination des Variables : Les noms de variables doivent être descriptifs et respecter des règles telles que :
    • Commencer par une lettre ou un souligné.
    • Ne contenir que des lettres, des chiffres et des soulignés.
  3. Utilisation des Variables : Les variables sont référencées dans les tâches en utilisant les doubles accolades entre guillemets "". Cette syntaxe indique à Ansible de la remplacer par la valeur de la variable au moment de l’exécution.

Mettez à jour le playbook system_setup.yml pour inclure et utiliser une variable :

---
- name: Basic System Setup
  hosts: node1
  become: true
  vars:
    user_name: 'Roger'
  tasks:
    - name: Update all security-related packages
      ansible.builtin.dnf:
        name: '*'
        state: latest
        security: true

    - name: Create a new user
      ansible.builtin.user:
        name: ""
        state: present
        create_home: true

Exécutez ce playbook avec ansible-navigator.

Étape 3 - Exécution du Playbook Modifié

Exécutez le playbook mis à jour :

[student@ansible-1 lab_inventory]$ ansible-navigator run system_setup.yml -m stdout
PLAY [Basic System Setup] ******************************************************

TASK [Gathering Facts] *********************************************************
ok: [node1]

TASK [Update all security-related packages] ************************************
ok: [node1]

TASK [Create a new user] *******************************************************
changed: [node1]

PLAY RECAP *********************************************************************
node1                      : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Remarquez comment le playbook mis à jour montre un statut de changement dans la tâche Créer un nouvel utilisateur. L’utilisateur, ‘Roger’, spécifié dans la section vars a été créé.

Vérifiez la création de l’utilisateur via :

[student@ansible-1 lab_inventory]$ ssh node1 id Roger

Étape 4 - Utilisation Avancée des Variables dans le Playbook de Vérifications

Améliorez le playbook system_checks.yml pour vérifier l’utilisateur ‘Roger’ dans le système en utilisant la variable register et la déclaration conditionnelle when.

Le mot-clé register dans Ansible est utilisé pour capturer la sortie d’une tâche et la sauvegarder en tant que variable.

Mettez à jour le playbook system_checks.yml :

---
- name: System Configuration Checks
  hosts: node1
  become: true
  vars:
    user_name: 'Roger'
  tasks:
    - name: Check user existence
      ansible.builtin.command:
        cmd: "id "
      register: user_check

    - name: Report user status
      ansible.builtin.debug:
        msg: "L'utilisateur  existe."
      when: user_check.rc == 0

Détails du Playbook :

Cette configuration fournit un exemple pratique de la manière dont les variables peuvent être utilisées pour contrôler le flux des tâches en fonction des résultats des étapes précédentes.

Exécutez le playbook de vérifications :

[student@ansible-1 lab_inventory]$ ansible-navigator run system_checks.yml -m stdout

Sortie :

PLAY [System Configuration Checks] *********************************************

TASK [Gathering Facts] *********************************************************
ok: [node1]

TASK [Check user existence] ****************************************************
changed: [node1]

TASK [Report user status] ******************************************************
ok: [node1] => {
    "msg": "L'utilisateur Roger existe."
}

PLAY RECAP *********************************************************************
node1                      : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Examinez la sortie pour confirmer que la vérification de l’existence de l’utilisateur utilise correctement la variable et la logique conditionnelle.

Navigation

Exercice Précédent - Prochain Exercice

Cliquez ici pour retourner à l’atelier Ansible pour Red Hat Enterprise Linux