Description de la formation Ansible Industrialiser les déploiements
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é quel que 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 le positionner dans un processus d’intégration continue avec les autres outils DevOps.
Objectifs
Objectif opérationnel :
Savoir utiliser Ansible pour industrialiser la configuration et le déploiement de ses applications.
Objectifs pédagogiques :
À l’issue de cette formation Ansible Industrialiser les déploiements, vous aurez acquis les connaissances et compétences nécessaires pour :
- Connaître l’intérêt d’Ansible et ses caractéristiques principales.
- Savoir installer et configurer Ansible
- Être capable de mettre en œuvre les playbooks, modules, rôles, tâches…
- Connaître les fonctionnalités avancées d’Ansible
- Savoir optimiser le pilotage d’un parc de serveurs et le déploiement d’applications
- Maîtriser les bonnes pratiques sous Ansible
À qui s’adresse cette formation ?
Public :
Ce cours Ansible s’adresse aux administrateurs et aux exploitants souhaitant mettre en œuvre Ansible pour le déploiement des services et applications. Il intéressera également les équipes DevOps en charge de l’intégration continue.
Prérequis :
Les participants à cette formation doivent nécessairement savoir administrer un système Linux. La connaissance d’un langage de développement de scripts leur permettra de comprendre plus rapidement certains des aspects avancés d’Ansible.
Contenu du cours Ansible Industrialiser les déploiements
Jour 1
Présentation de Ansible
La place de Ansible dans le mouvement DevOps
Les autres outils (Puppet, Chef, Saltstack, …)
Principes d’une Infrastructure as Code (IaC)
Fonctionnement général de Ansible
Installation et première utilisation
Installation d’Ansible
Principes des clefs ssh (public, private)
Les fichiers utilisés par Ansible (/etc/ansible, inventaire, …)
Test de la connectivitéTravaux pratiquesInstallation, configuration des nœuds
Création de l’inventaire des serveurs et premières commandes
Les commandes Ad-Hoc et les modules Ansible
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 setupTravaux pratiquesCommandes de base : Installation de package, Copies de fichiers, Gestion des services
Démarrer avec les Playbooks
Rôle d’un fichier playbook
Les différentes sections (hôte, variable, tâches)
Les variables et les tableaux
La priorité et la portée des variables
La programmation (boucle, condition, filtre, opérations, etc.)
Exemples de templates utiles
Inclusion et import de fichiers
Debug et erreurs classiquesTravaux pratiquesCréation et exécution de Playbooks pour la mise en œuvre d’une application LAMP (Apache, MySQL)Jour 2
Les différents rôles sous Ansible
Comment s’assurer de la présence/absence de fonctionnalité ?
Structure d’un rôle
Exécution d’un rôle
Quelques exemples de rôle
Utiliser des éléments existants (Ansible Galaxy)Travaux pratiquesCréation de rôles et inclusion de rôles d’Ansible Galaxy
Fonctionnalités avancées
Bonnes pratiques avec les tags
Utiliser les caractéristiques de la machine (Gather_facts, module setup)
Tester notre playbook avant exécution (dry-run, step-by-step et diff)
La visualisation d’un playbook
Accéder à des sources de données (plugin lookup)
Le fichier d’inventaire dynamique et temporaire
Grouper des actions logique (blocks)
Gérer les erreurs (any_errors_fatal)
Les prés et post tasks
La délégation par delegate_to
Parallélisme et serialisation des tâches
L’escalade des privilèges
Test de cohérence : assert et failTravaux pratiquesVisualisation de la configuration de nos machines post-installation Ansible sous forme de site WEB (génération de HTML pour disposer d’un tableau de bord des configurations : OS, IP, logiciels installés, etc.)
Compléments et bonnes pratiques
Développer ses propres modules, déboguer un module, les plug-ins.
Utiliser les collections
Ansible Vault et l’encryptage
Créer ses propres filtres.
Ansible et Ansible Tower.
Utiliser un SCM avec Ansible
Où stocker les fichiers Ansible ?
La gestion des inventairesTravaux pratiquesMise en œuvre des Collections et d’Ansible Vault