Objectifs
Ansible est une solution open source qui permet d’automatiser la configuration et le déploiement d’application sur un ensemble de serveurs. Sa grande force est sa simplicité de mise en œuvre à travers de simples connexions ssh. Un langage de description très facile à appréhender permet d’exprimer ses souhaits d’installation sur les serveurs physiques ou virtuels cibles. Ansible se charge alors d’atteindre l’état désiré quelque soit l’état initial des serveurs. Les responsables de déploiement peuvent alors organiser leur projet en mettant en place des bibliothèques, des gabarits, des variables.
Cette formation pratique vous apprend à découvrir tout le potentiel d’Ansible et surtout à le mettre en œuvre (playbooks, modules, rôles, tâches, déploiement, etc.) tout en étant capable de clairement le positionner dans un processus d’intégration continue avec les autres outils DevOps.
A qui s'adresse cette formation
Public :
Ce cours Ansible est destiné aux administrateurs et aux exploitants souhaitant mettre en œuvre Ansible pour le déploiement des services et applications.
Prérequis :
Pour profiter pleinement de ce cours Ansible, il est nécessaire de connaître l'administration d’un système Linux.
Contenu du cours
Présentation d'Ansible
Introduction et concepts
Installation d'Ansible
Les pré-requis
L'installation sous Red Hat
Effectuer un échange de clefs SSH
Travaux pratiques
Installation, configuration des nœuds, création de l’inventaire des serveurs et premières commandes.
Configuration et utilisation d'Ansible
Le répertoire /etc/ansible
Les modules Ansible
Test de la connectivité
Le fichier d'inventaire
Les commandes Ad-Hoc et les modules Ansible
Les modules command et shell
Le transfert de fichiers
La gestion des packages
La gestion des utilisateurs
La gestion des services
Le module setup
Travaux pratiques
Commandes de base : Installation de package, Copies de fichiers, Gestion d’utilisateurs et de groupe
Démarrer avec les Playbooks
Description d'un playbook
Les variables et les tableaux
La priorité et la portée des variables
Les templates
La boucle for
Le module debug et le mot clef register
Les Handlers
Les boucles
La condition when
Les include et les import
Les filtres
Les opérations arithmétiques
Travaux pratiques
Exécution de playbooks. Déploiement d’une stack applicative en architecture 3-tiers
Les différents rôles sous Ansible
Présentation
Structure d'un rôle
Exécution d'un rôle
Un exemple de rôle
Un exemple de rôle avec des inclusions
Ansible Galaxy
Travaux pratiques
Mise en place de rôles, de gabarits, variabilisation et inclusion de playbooks
Les fonctionnalités avancées
Les tags
La visualisation d'un playbook
Gather_facts
La délégation par delegate_to
Les pré et post tasks
Le mot clef run_once
Le parallélisme
Le traitement avec serial
any_errors_fatal
Les blocks
La connexion avec un autre compte
Le prompt
Le fichier d'inventaire dynamique et temporaire
lookup
set_fact
Test de cohérence : assert et fail
dry-run, step-by-step et diff
Travaux pratiques
Mise en place de rôles, de gabarits, variabilisation et inclusion de playbooks
Compléments de connaissances
La création d'un module
Ansible Vault et l'encryptage
Les bonnes pratiques
Utiliser un SCM avec Ansible
Où stocker les fichiers Ansible
La gestion des inventaires
La gestion des facts