Pratique 2 - Questions de développement
Table des matières
- L'Inventaire Ansible
- Les Playbooks
- Les Variables dans Ansible
- Les Conditions when
- Les Modules Ansible
- Les Roles Ansible
- Les Handlers Ansible
- Les Tags Ansible
- Les Fichiers de Configuration Ansible
- Les Fichiers de Variables Ansible
- Les Fichiers de Roles Ansible
- Ansible Vault
- Sécurisation des Secrets avec Ansible Vault
- Utilisation de Jinja2 dans les Templates Ansible
- Jinja2 et le Chiffrement des Variables
Question 1 - L'Inventaire Ansible
Qu'est-ce qu'un inventaire dans Ansible, et à quoi sert-il dans la gestion des infrastructures ? Fournissez un extrait d'un fichier inventory.ini
vu dans les pratiques (avec des groupes et des nœuds) et expliquez les éléments qui le composent.
🔙 Retour à la Table des Matières
Question 2 - Les Playbooks
Qu'est-ce qu'un playbook Ansible ? Expliquez son rôle dans l'automatisation des tâches. Donnez un extrait d'un playbook utilisé en classe pour installer un service (par exemple, Apache ou Git), et expliquez le fonctionnement des modules employés.
🔙 Retour à la Table des Matières
Question 3 - Les Variables dans Ansible
Expliquez comment l'utilisation de variables rend les playbooks plus flexibles. Fournissez un extrait d'un playbook ou d'un fichier de variables vu en classe, et expliquez comment ces variables sont utilisées dans une tâche.
🔙 Retour à la Table des Matières
Question 4 - Les Conditions when
Expliquez le rôle de la directive when
dans un playbook Ansible. Pourquoi est-elle utile ? Donnez un extrait de playbook utilisant when
pour exécuter des tâches spécifiques en fonction du système d'exploitation (par exemple, ansible_os_family
). Expliquez comment cette condition adapte l'exécution des tâches selon les caractéristiques des hôtes. Proposez un scénario pratique où l'utilisation de when
serait indispensable pour éviter des erreurs ou optimiser une tâche.
🔙 Retour à la Table des Matières
Question 5 - Les Modules Ansible
Expliquez comment les modules Ansible sont utilisés pour automatiser les tâches. Fournissez un exemple concret d'un module utilisé en classe pour configurer un service (par exemple, apt
pour les paquets Debian ou yum
pour les paquets CentOS). Expliquez comment ce module est utilisé dans un playbook pour installer ou configurer un service.
🔙 Retour à la Table des Matières
Question 6 - Les Roles Ansible
Qu'est-ce qu'un role Ansible ? Expliquez son rôle dans la structure des playbooks. Fournissez un extrait d'un role utilisé en classe pour configurer un service (par exemple, nginx
). Expliquez comment ce role est organisé et comment les tâches sont définies dans les fichiers de ce role.
🔙 Retour à la Table des Matières
Question 7 - Les Handlers Ansible
Expliquez le rôle des handlers dans Ansible. Quand sont-ils utilisés ? Fournissez un extrait de playbook utilisant un handler pour redémarrer un service après une modification de configuration. Expliquez comment ce handler est déclenché et comment il permet de garantir que les modifications sont appliquées.
🔙 Retour à la Table des Matières
Question 8 - Les Tags Ansible
Expliquez comment les tags sont utilisés dans Ansible. Quand sont-ils utilisés ? Fournissez un extrait de playbook avec des tags pour exécuter des tâches spécifiques. Expliquez comment ces tags permettent de sélectionner des tâches à exécuter dans un playbook.
🔙 Retour à la Table des Matières
Question 9 - Les Fichiers de Configuration Ansible
Expliquez comment les fichiers de configuration Ansible sont utilisés pour personnaliser l'exécution des playbooks. Fournissez un extrait d'un fichier de configuration (par exemple, ansible.cfg
) vu en classe et expliquez comment il est utilisé pour configurer l'exécution des playbooks.
🔙 Retour à la Table des Matières
Question 10 - Les Fichiers de Variables Ansible
Expliquez comment les fichiers de variables sont utilisés dans Ansible. Fournissez un extrait d'un fichier de variables vu en classe et expliquez comment il est utilisé pour fournir des valeurs aux tâches dans un playbook.
🔙 Retour à la Table des Matières
Question 11 - Les Fichiers de Roles Ansible
Expliquez comment les fichiers de roles sont utilisés dans Ansible. Fournissez un extrait d'un fichier de roles vu en classe et expliquez comment il est utilisé pour définir des tâches dans un role.
🔙 Retour à la Table des Matières
Question 12 - Ansible Vault
Qu'est-ce qu'Ansible Vault et quel est son rôle dans la gestion sécurisée des données sensibles ?
- Expliquez comment chiffrer un fichier contenant des variables sensibles à l'aide d'Ansible Vault.
- Fournissez un extrait de commande permettant de créer, chiffrer et décrypter un fichier avec Ansible Vault.
- Donnez un exemple de playbook utilisant un fichier chiffré avec Ansible Vault et expliquez comment ce fichier est utilisé de manière sécurisée dans l'exécution d'Ansible.
🔙 Retour à la Table des Matières
Question 13 - Sécurisation des Secrets avec Ansible Vault
Pourquoi est-il essentiel de sécuriser les secrets (mots de passe, clés API, certificats) dans Ansible ?
- Donnez un exemple d'utilisation d'Ansible Vault pour stocker et récupérer un mot de passe de base de données dans un playbook.
- Expliquez comment Ansible Vault peut être utilisé conjointement avec un gestionnaire de secrets externe (par exemple, HashiCorp Vault ou AWS Secrets Manager).
🔙 Retour à la Table des Matières
Question 14 - Utilisation de Jinja2 dans les Templates Ansible
Qu'est-ce que Jinja2 et quel est son rôle dans la génération dynamique des fichiers de configuration avec Ansible ?
- Fournissez un exemple de template Jinja2 utilisé dans un playbook pour générer un fichier de configuration basé sur des variables Ansible.
- Expliquez comment Jinja2 peut être utilisé avec des filtres et des structures conditionnelles pour adapter dynamiquement le contenu des fichiers générés.
🔙 Retour à la Table des Matières
Question 15 - Jinja2 et le Chiffrement des Variables
Comment utiliser Jinja2 pour manipuler et afficher des variables chiffrées avec Ansible Vault ?
- Donnez un exemple de playbook utilisant un template Jinja2 pour insérer une variable chiffrée dans un fichier de configuration.
- Expliquez comment éviter d'afficher accidentellement des secrets sensibles dans les logs d'exécution d'Ansible.