Ansible For Teenagers
Ansible For Teenagers
Ansible for
Teenagers
CONVIENT AUSSI AUX
ADULTES
Antony Kervazo-Canut
Introduction
Ansible est un outil open source d'automatisation, de configuration et
de gestion d'infrastructures informatiques. Il permet de gérer
facilement de nombreux serveurs en utilisant le langage YAML pour
décrire les tâches automatisées. Ansible fonctionne sans agent, ce qui
signifie qu'il n'est pas nécessaire d'installer un logiciel
supplémentaire sur les nœuds qu'il gère.
Installation
d'Ansible
Antony Kervazo-Canut
Inventaire
Ansible Ping
Playbooks
Un playbook Ansible est un fichier YAML décrivant les tâches à
exécuter sur les serveurs.
Tasks
Les tâches sont les unités de base de l'action dans un playbook
Ansible. Elles définissent ce que vous voulez réaliser sur les hôtes
ciblés.
Cette tâche met à jour les paquets sur un serveur Ubuntu en utilisant
le module apt. Ansible dispose d'une large gamme de modules pour
diverses tâches. Par exemple, pour gérer des fichiers, utilisez le
module file.
Antony Kervazo-Canut
Variables
Antony Kervazo-Canut
Facts
Les facts dans Ansible sont des variables générées automatiquement
contenant des informations sur les systèmes distants. Ils sont
recueillis par Ansible à chaque fois qu'il se connecte à un hôte cible,
fournissant des détails comme le système d'exploitation, les adresses
IP, les disques disponibles, etc.
Les facts peuvent être utilisés dans vos playbooks pour conditionner
l'exécution de tâches en fonction des caractéristiques de l'hôte.
Antony Kervazo-Canut
Rôles
Les rôles dans Ansible organisent des tâches, des fichiers, des
templates et des variables en unités logiques, facilitant ainsi la
réutilisation et la gestion.
Antony Kervazo-Canut
Ansible Vault
Ansible Vault est un outil intégré à Ansible qui permet de chiffrer des
fichiers de données sensibles pour les sécuriser. Il est
particulièrement utile pour gérer des informations sensibles telles
que des mots de passe ou des clés secrètes dans vos playbooks, rôles,
ou fichiers de variables.
Antony Kervazo-Canut
Ansible Vault -
Utilisation
Pour utiliser des variables chiffrées dans vos playbooks, vous devez
d'abord inclure le fichier de secrets chiffré. Utilisez la directive
vars_files dans votre playbook pour spécifier le fichier chiffré.
Antony Kervazo-Canut
Ansible Galaxy
Ansible Galaxy est une plateforme où la communauté partage des
rôles réutilisables : https://galaxy.ansible.com/ui/
Erreurs
Parfois, vous voudrez peut-être continuer l'exécution du playbook
même si une tâche échoue. Vous pouvez utiliser ignore_errors.
Vous pouvez contrôler les conditions sous lesquelles une tâche est
considérée comme ayant échoué ou réussi en utilisant failed_when et
changed_when. Ici si le mot "ERREUR" est présent, la tâche échoue.
Antony Kervazo-Canut
Dans cet exemple, si une tâche dans le bloc block échoue, le bloc
rescue est exécuté. Le bloc always s'exécute dans tous les cas, que le
bloc block réussisse ou échoue.
Antony Kervazo-Canut
Retries / Until
Parfois, vous voudrez peut-être réessayer une tâche qui a échoué
après un court délai.
Assertions
Utilisez des assertions pour effectuer des vérifications avant
d'exécuter des tâches critiques.
Handlers
Les handlers sont des tâches spéciales qui s'exécutent en réponse à un
changement. Par exemple, redémarrer un service après sa mise à
jour.
Antony Kervazo-Canut
Debug
Utilisez le module debug pour afficher des valeurs de variables ou des
messages personnalisés.
Exécutez des playbooks en mode verbose (-v, -vv, ou -vvv pour plus de
détails) pour obtenir des informations supplémentaires.
Antony Kervazo-Canut
Molecule
Molecule fournit une structure pour tester les rôles Ansible de
manière systématique, utilisant des conteneurs ou des machines
virtuelles pour créer un environnement de test. Il permet de vérifier
que vos rôles fonctionnent comme prévu sur différentes plateformes
et configurations.
Molecule permet d'écrire des tests pour vérifier que les rôles Ansible
fonctionnent comme prévu. Ces tests sont généralement écrits en
utilisant le module testinfra ou ansible lui-même pour la phase de
vérification.
Antony Kervazo-Canut
Molecule avec
Testinfra
Testinfra est une bibliothèque Python qui sert à tester
l'infrastructure de vos serveurs. Elle permet d'écrire des tests
unitaires pour vérifier si les services, paquets, fichiers, etc., sont dans
l'état attendu sur vos serveurs. Testinfra peut être utilisé avec
Molecule pour tester des rôles Ansible, en s'assurant que le rôle
applique la configuration désirée sur un serveur ou un conteneur.
molecule.yml
Antony Kervazo-Canut
Molecule avec
Testinfra
Molecule utilisant Testinfra comme vérificateur, les tests ne sont pas
définis dans un fichier verify.yml mais plutôt dans des fichiers de test
Python séparés, tels que test_default.py.
tests/test_default.py
Dans la même
collection
ANTONYCANUT