Présentation du produit Ansible
En guise d’introduction, on décrira dans ce document le projet Ansible, ses cas d’usage, ses composants, son principe de fonctionnement, son installation et les différents binaires qui l’accompagnent.
Ansible est devenu un outil incontournable de gestion d’infrastructure pour des cibles Linux mais aussi pour des cibles du réseau et du centre de données, du nuage. Il est capable de représenter la gestion de la configuration d’une infrastructure sous forme de code, aisé à lire et à gérer. Ansible transforme l’esprit de l’admin traditionnel en dev.
Ce document est un guide de formation sur l’usage d’Ansible.
Pour aborder cette matière quelques pré-requis sont nécessaires :
Ce document a pour premier objectif de répondre aux sujets du programme de l’examen de certification RHCE EX294 (Ingénieur certifié Red Hat) pour Red Hat Enterprise Linux 8. Ceux-ci portent sur les compétences de base en administration d’un système Linux RHEL 8 à travers l’outil de gestion Ansible, en ce y compris la gestion du pare-feu, des services de base et de Selinux.
Toutefois, si Ansible est capable de gérer une infrastructure entière qui n’est probablement pas seulement composée de systèmes Red Hat, on ne manquera pas de développer d’autres objectifs comme :
Le document s’aligne sur le programme de l’Examen RHCE EX294 (Ingénieur certifié Red Hat) pour Red Hat Enterprise Linux 8
En guise d’introduction, on décrira dans ce document le projet Ansible, ses cas d’usage, ses composants, son principe de fonctionnement, son installation et les différents binaires qui l’accompagnent.
Ce chapitre envisage cinq solutions de lab pour apprendre Ansible pour dans le cadre d’une gestion de Linux. Une première solution montée avec Docker, deux autres avec Libvirt/KVM gérées en Bash ou avec Ansible lui-même et deux dernières avec Vagrant et Virtualbox ou Libvirt/KVM.
Un inventaire peut être une collection d’hôtes définis dans un fichier plat, dans un dossier organisé de manière conventionnelle ou peut être nourri d’un script dynamique (qui interroge un CMDB par exemple) qui génère une liste de périphériques à cibler dans un livre de jeu. Il peut donc être statique, soit défini d’avance ; il peut aussi se créer dynamiquement ou encore être mis à jour dynamiquement. La portée d’un jeu au sein du livre de jeu est limitée aux groupes d’hôt...
Ce document poursuite l’objectif d’expliquer le concept, le rôle, la manipulation et les codes de retour des modules. Les modules Ansible sont des bouts de codes écrits principalement en Python (mais tout langage supportant les retours JSON est autorisé) pour modifier l’état d’une propriété d’un hôte. Les modules sont invoqués par l’exécution de tâches soit directement dans la ligne de commande ansible ou dans des livres de jeu avec la commande ansible-playbook.
Ce chapitre envisage la prise de connaissance et la mise en oeuvre de tâches Ansible Ad-Hoc pour administrer un système Linux avec Ansible. Le mode ad-hoc permet d’exécuter des tâches ad-hoc. Rappelons qu’une tâche n’est rien d’autre que l’appel à un module.
Ansible présente en sortie standard les résultats de ses actions en format JSON. On présentera ici le format JSON et son traitement avec l’outil jq. Ansible utilise le format YAML pour ses fichiers de données statiques pour la facilité d’usage. Enfin, les variables sont présentées dans Ansible grâce aux modèles Jinja2.
Synthèse sur les livres de jeu. Jouer avec les facts, les variables, les conditions et les boucles.
Gestion des Erreurs Ansible : Ignorer les tâches en échec, Contrôler l’état changed, Contrôler l’état failed, Tâche en échec et handlers, Module fail. Gestion des connexions dans Ansible. Abstraire un livre de jeu avec des inclusions, des imports et des rôles Ansible-Galaxy. Collection Ansible-Galaxy. Ansible-vault est un outil intégré à Ansible qui permet de chiffrer les fichiers qui contiennent des données sensibles.
Ansible Tower est Ansible au niveau de l’entreprise. Il s’agit d’une solution Web permettant de gérer une organisation avec une interface utilisateur très simple qui fournit un tableau de bord avec des résumés de l’état de tous les hôtes, qui permet des déploiements rapides et surveille toutes les configurations. Tower permet de partager les informations d’identification SSH sans les exposer, de consigner tous les travaux, de gérer graphiquement les inventaires et de les ...
Exercices Ansible
Ce document propose d’examiner les principales options de configuration de Ansible sur le noeud de contrôle. Son architecture sans agent laisse le soin à chacun de configurer finement et personnellement le comportement par défaut de la solution. Le comportement d’Ansible peut être influencé de différentes manières : en configurant des variables d’environnement, en passant directement les paramètres sur la ligne de commande ansible ou ansible-playbook, en définissant un fic...
Solutionnaire Ansible
Glossaire des termes utilisés dans le contexte Ansible