![Ansible - eni - 9782409039720 -](https://www.unitheque.com/Intermediaire3/CouvertureA/N/9782409039720-ansible_g.jpg)
Ansible
Gérez la configuration de vos serveurs et le déploiement de vos applications
Ce livre sur Ansible s’adresse aux administrateurs de systèmes Unix qui souhaitent découvrir les différentes fonctionnalités spécifiques de cet outil DevOps permettant la configuration centralisée de serveurs et d’applications. À l’aide d’exemples concrets, l’auteur apporte au lecteur les connaissances [...]
[lire le résumé du livre]
Auteur : Yannig PERRé
Editeur : Eni
Collection : Epsilon
Date parution : 05/2023 3e éditionCB Google/Apple Pay, Chèque, Virement
Quel est le sujet du livre "Ansible"
Ce livre sur Ansible s’adresse aux administrateurs de systèmes Unix qui souhaitent découvrir les différentes fonctionnalités spécifiques de cet outil DevOps permettant la configuration centralisée de serveurs et d’applications. À l’aide d’exemples concrets, l’auteur apporte au lecteur les connaissances nécessaires pour bien comprendre l’intérêt de son utilisation.
Certains prérequis sur le langage YAML ou l’utilisation du protocole SSH sont un plus pour une utilisation efficace d’Ansible. Dans les premiers chapitres, l’auteur aide toutefois le lecteur à les acquérir pour qu’il puisse tirer le meilleur profit de la lecture du livre.
Les chapitres qui suivent traitent des différents mécanismes d’Ansible avec une approche de difficulté progressive. Les premiers mécanismes permettent ainsi d’administrer de façon classique les serveurs (Unix ou Windows) alors que les suivants nécessitent des notions plus avancées, notamment sur la programmation Python. Le lecteur y découvre alors comment créer un inventaire, comment réinjecter des informations provenant de sources existantes (ESX, AWS, Docker…) ou comment créer des playbooks. La création de rôles Ansible est également traitée ainsi que quelques bonnes pratiques à suivre (analyse de code et test avec Molecule à l'aide de Podman ou Docker).
À côté des notions purement orientées Ansible, certains chapitres sont consacrés au déroulement du déploiement d’une application MediaWiki. Le lecteur étudie ainsi les problématiques de parallélisation des tâches, l’introduction d’un répartiteur de charge Haproxy et le lancement en séquence des opérations permettant de réaliser les mises à jour avec un impact minimal (rolling update). L’optimisation des tâches sera également un point important avec la mise en place de Mitogen.
La suite du livre détaille plus particulièrement la personnalisation d’Ansible. La restitution d’informations (mécanismes de callback et découverte de ARA), l’écriture de modules pour la gestion d’opérations, les filtres Jinja ou encore la création d’actions sont ainsi étudiés.
Enfin, l’auteur présente dans les derniers chapitres la problématique de la création de machines virtuelles, classiques (via l’hyperviseur ESX/VMware/vCenter) ou dans le cloud (avec AWS), l’utilisation de containers Podman/Docker avec Ansible, le pilotage d’applications dans un cluster Kubernetes ainsi que la création d’un opérateur.Téléchargements
Administrateur système depuis de nombreuses années, Yannig PERRÉ est aujourd'hui spécialiste de la gestion d'applications à l'aide de conteneurs. Il associe naturellement à ce savoir-faire différents outils pour gérer les problématiques d'installation, de résilience, de scalabilité, de surveillance ainsi que de publication des applications sur Internet. Associée à sa longue expérience du monde open source, cette expertise lui permet de transmettre aux lecteurs des livres réellement efficaces sur la mise en œuvre d’Ansible, Kubernetes ou encore Prometheus et Grafana.
En suivant ce lien, retrouvez tous les livres dans la spécialité Techniques de programmation.
Sommaire et contenu du livre "Ansible - Gérez la configuration de vos serveurs et le déploiement de vos applications"
Avant-propos
- 1. D’où vient le terme DevOps ?
- 2. Les premiers produits DevOps
- 3. Cibles et objectifs de l’ouvrage
- 4. Prérequis techniques et ressources documentaires
- 4.1 Prérequis techniques
- 4.2 Ressources documentaires
- 5. Présentation générale
- 5.1 Les prérequis
- 5.2 L’utilisation d’Ansible
- 5.3 La personnalisation d’Ansible
- 5.4 Conventions employées
Démarrer avec Ansible
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Version de Python
- 1.3 Environnement de travail
- 1.4 Fichiers téléchargeables
- 2. Installation d'Ansible
- 2.1 Contexte
- 2.2 Installation derrière un proxy
- 2.3 Installation via les packages système
- 2.3.1 Installation sous Debian/Ubuntu
- 2.3.2 Installation sur RHEL, CentOS ou Fedora
- 2.4 Installation via pip
- 2.5 Utilisation de virtualenv
- 2.6 Vérification de la version d'Ansible
- 3.1 À propos de SSH
- 3.2 Clé publique et clé privée
- 3.3 Génération de la clé
- 3.4 Étapes de l’authentification
- 3.5 Parc important de machines ou hébergement dans le cloud
- 3.6 Échange de clé par mot de passe
- 3.7 Échange de clé sans mot de passe
- 3.8 Gestion d’une passphrase avec Ansible
Utilisation d’Ansible
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Ansible en mode ad hoc
- 2.1 Création d’un fichier d’inventaire
- 2.2 Utilisateur non root
- 2.3 Utilisateur SSH non root et mécanisme sudo
- 3. Les autres outils d’Ansible : playbook et doc
- 4. Quelques notions sur le format YAML
- 4.1 Déclaration de variables simples
- 4.2 Les tableaux en YAML
- 4.3 Les structures clé/valeur
- 4.4 Tableau de tables de hachage
- 4.5 Inventaire au format YAML
- 5. Introduction de la notion de playbook
- 5.1 Structure d’un playbook
- 5.2 Lancement d’un playbook
- 6. Combinaison avec Git
- 6.1 Création du repository
- 6.2 Commandes de base
- 6.2.1 Récupération d’un repository Git
- 6.2.2 Branche de travail
- 6.2.3 État de votre repository
- 6.2.4 Ajout d’un fichier
- 6.2.5 Modification d’un fichier
- 6.2.6 Mise à jour du repository distant
- 6.2.7 Récupération des modifications distantes
- 6.3 Mécanisme de hook
- 6.3.1 Vérification des playbooks avec ansible-lint
- 6.3.2 Création du hook pre-commit
- 6.3.3 Test du fonctionnement du hook
Découverte de l’inventaire
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Structure d’un inventaire
- 2.1 Groupes par défaut
- 2.2 Mode de connexion aux machines
- 2.3 Regroupement de machines
- 2.4 Variables d’inventaire
- 2.5 Hiérarchie des variables
- 2.6 Gestion des différents inventaires
- 2.7 Création de groupes temporaires
- 3. Fusion d'inventaires
Inventaires : notions avancées
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Chiffrement de fichiers
- 2.1 Contexte
- 2.2 Stockage d’identifiants de connexion
- 2.3 Chiffrement du fichier entier
- 2.3.1 Par mot de passe
- 2.3.2 Utilisation d’un fichier
- 2.3.3 Déchiffrement d’un fichier
- 2.3.4 Changement du mot de passe de chiffrement
- 2.4 Chiffrement d’un champ
- 2.5 Mécanismes de chiffrements alternatifs
- 2.5.1 Sélection et recherche d’un module lookup
- 3.1 Contexte
- 3.2 Machines AWS
- 3.2.1 Prérequis
- 3.2.2 Récupération du script ec2.py
- 3.2.3 Configuration
- 3.2.4 Test du script
- 3.3.1 Récupération du script d’inventaire
- 3.3.2 Configuration de la communication avec Docker
- 3.3.3 Test du script d’inventaire
- 3.3.4 Communication avec les conteneurs Docker
- 3.3.5 Un petit mot sur le choix de l’image Docker
- 4.1 Contexte
- 4.2 Connecteur supporté par le format auto
- 4.3 Exemples de fichiers d’inventaire au format auto
- 4.4 Utilisation de la commande ansible-inventory
- 4.5 Inventaire des instances ec2
- 5.1 Contexte
- 5.2 Format en entrée
- 5.3 Structure du programme
- 5.3.1 En-tête du programme
- 5.3.2 Chargement du fichier
- 5.3.3 Transformation et alimentation de l'inventaire
- 5.3.4 Test du script d’inventaire
- 5.3.5 Test de l’inventaire dynamique avec Ansible
Administration Windows
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Ansible et les machines sous Windows
- 2.1 Contexte
- 2.2 Prérequis
- 2.3 Configuration de la machine
- 2.4 Création du fichier d’inventaire
- 2.5 Test de la communication Windows
- 2.6 Installation d’un package
- 3. Gestion de service Windows
- 3.1 Contexte
- 3.2 Installation de Prometheus
- 3.3 Création du playbook
- 3.4 Lancement de l’installation
- 3.5 Consultation de la console Prometheus
- 4. Création de service
- 4.1 Installation de Grafana
- 4.1.1 Présentation de Grafana
- 4.1.2 Création du playbook
- 4.1.3 Lancement de l’installation
- 4.1 Installation de Grafana
- 4.2 Création d’un service Windows
- 4.2.1 Recherche du programme de lancement de Grafana
- 4.2.2 Gestionnaire de services NSSM
- 4.2.3 Création du service Grafana
- 4.2.4 Playbook complet d’installation de Grafana
- 4.3 Mécanismes de secours
- 4.4 Consultation de l’interface Grafana
Fonctionnement d’un playbook
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Le moteur de template Jinja : principe de fonctionnement
- 3. Template Jinja
- 3.1 Mécanisme de boucle sur tableau avec Jinja
- 3.2 À la recherche de la bonne variable Ansible
- 3.3 Affichage des interfaces réseau
- 4. Délégation de tâche
- 4.1 Changement du type de connexion au niveau d’une tâche
- 4.2 Délégation d’une tâche
- 4.3 Tâche à exécuter une seule fois
- 5. Gestion d’un serveur Apache
- 6. Réduction des opérations impactantes
- 6.1 Mécanisme des tags
- 6.1.1 Déclaration d’un tag
- 6.1.2 Comment lister les tags d’un playbook ?
- 6.1.3 Sélection ou exclusion d’un tag
- 6.1.4 Gather facts et le tag always
- 6.1 Mécanisme des tags
- 6.2 Mise en cache du résultat d’analyse (module setup)
- 6.3 Utilisation d’une variable sur une tâche
- 6.4 Utilisation d’un handler
- 6.4.1 Pourquoi utiliser un handler ?
- 6.4.2 Déclaration d’un handler
- 6.4.3 Exemple de lancement
Introduction à la notion de rôle
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Introduction aux rôles Ansible
- 2.1 Structure d’un rôle
- 2.2 Votre premier rôle : installation d’Apache
- 2.3 Configuration du serveur Apache
- 3. Installation de MediaWiki
- 3.1 Filtres Jinja et installation d’Apache
- 3.2 Gestion des variables dans un rôle
- 3.3 Installation de MariaDB/MySQL
- 3.4 Installation de MediaWiki
- 3.5 Configuration de MediaWiki
- 3.5.1 Décompression de l’archive
- 3.5.2 Mutualisation de la base MariaDB et du serveur Apache (SELinux)
- 3.5.3 Commande de configuration de MediaWiki
- 3.5.4 Dépendances et variables manquantes
- 3.5.5 Lancement de l’installation et configuration de MediaWiki
- 3.5.6 Changement de version de PHP
- 3.5.7 Itération sur la liste des clés GPG des paquets RPM
- 3.5.8 Activation des accès distants sur la base MariaDB
- 3.5.9 Configuration de l’accès distant
- 3.5.10 Activation de l’accès distant des utilisateurs
- 4.1 Réentrance et script shell
- 4.2 Problème de redirection
Playbooks, rôles et notions avancées
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Gestion de Python sur les machines distantes
- 2.1 Introduction
- 2.2 Préparation de l’inventaire
- 2.3 Gestion d’une machine sans Python
- 2.4 Détection automatique de l’interpréteur
- 2.5 Positionnement de l'emplacement de l'interpréteur Python
- 2.6 Python3 et Ansible
- 3. Scalabilité et répartition de charge
- 3.1 Contexte
- 3.2 Origine du besoin
- 3.3 Ajout de nouveaux serveurs Apache
- 3.4 Lancement d’une opération de manière séquentielle
- 4. Ajout d’un répartiteur de charge
- 4.1 Pourquoi ajouter un répartiteur de charge ?
- 4.2 Différence entre Ubuntu/Debian et Centos/Red Hat
- 4.3 Installation du serveur Haproxy
- 4.3.1 Configuration du serveur Haproxy
- 4.3.2 Mise au point du rôle
- 5.1 Contrôler le lancement des handlers
- 5.2 Réduire le temps d’indisponibilité d’un service
- 6.1 Contexte
- 6.2 Gestion de la montée de version du schéma
- 7.1 Contexte
- 7.2 Présentation du mécanisme
- 7.3 Rolling update sur MediaWiki
- 7.4 Désactivation des machines avant mise à jour
- 7.4.1 Configuration du Haproxy
- 7.4.2 Désactivation de l’instance Apache avant mise à jour
- 7.4.3 Utilisation de l'instruction include_role
- 7.4.4 Pollution de la trace Apache
- 8.1 Contexte
- 8.2 Inclusion statique de tâches
- 8.3 Inclusion dynamique de tâches
- 8.4 Gestion du comportement de l’instruction de boucle
- 8.4.1 Contrôle du nom de la variable de boucle
- 8.4.2 Autres mots-clés intéressants
- 9.1 Présentation du site
- 9.2 Recherche d’un rôle
- 9.3 Utilisation d’un rôle en provenance d’Ansible Galaxy
- 9.4 Utilisation d’un fichier de prérequis
- 9.5 Comment lister les rôles d’Ansible Galaxy ?
- 9.6 Suppression d’un rôle
- 9.7 Collections Ansible
- 9.7.1 Origine du besoin
- 9.7.2 Recherche de collections
- 9.7.3 Installation d’une collection
- 9.7.4 Consultation de la liste des collections
- 9.7.5 Utilisation d’une version spécifique
- 9.7.6 Utilisation d’un fichier de dépendances
- 9.7.7 Gestion des datasources Grafana
Stratégie d’exécution et optimisation
- 1. Objectifs du chapitre et prérequis
- 2. Stratégie d’exécution
- 2.1 Contexte
- 2.2 Gestion du nombre de tâches lancées en parallèle
- 2.3 Stratégie d’exécution : free
- 3. Débogage avec Ansible
- 3.1 Contexte
- 3.2 Consultation d’informations
- 3.3 Modification d'un élément
- 3.4 Relance d’une tâche
- 3.5 Définition d'une variable
- 4. Étude du fonctionnement d’Ansible
- 4.1 Contexte
- 4.2 Playbook de test
- 4.3 Opérations lancées par Ansible
- 5. Présentation de Mitogen
- 5.1 Contexte
- 5.2 Présentation de Mitogen
- 5.3 Principe de fonctionnement de Mitogen
- 5.4 Activation de Mitogen
- 5.5 Gains potentiels et limitations
Tests Ansible
- 1. Objectifs du chapitre et prérequis
- 2. Linter Ansible
- 2.1 Contexte
- 2.2 Lancement de l’analyse
- 2.3 Règles disponibles
- 2.4 Désactivation de règles
- 2.5 Création de nouvelles règles
- 3. Présentation de Molecule
- 3.1 Contexte
- 3.2 Prérequis et installation de Molecule
- 3.3 Mise en place de Podman
- 3.3.1 Installation de Podman
- 3.3.2 Nom des images dans Podman
- 3.3.3 Test du fonctionnement de Podman
- 3.4 Installation de Docker
- 3.4.1 Installation de Docker Community Edition sur Ubuntu
- 3.4.2 Installation alternative
- 3.4.3 Configuration des accès à Docker
- 3.4.4 Vérification de l’installation de Docker
- 4.1 Fichier de configuration molecule.yml
- 4.2 Création d’un rôle Apache
- 4.2.1 Initialisation du rôle
- 4.2.2 Structure du rôle
- 4.2.3 Intégration du rôle Apache
- 4.2.4 Playbook de convergence
- 4.2.5 Vérification de l’installation
- 4.4.1 Lancement de Molecule en mode debug
- 4.4.2 Connexion au conteneur de tests
- 4.5.1 Modification de la définition de la plateforme (champ platforms)
- 4.5.2 Relance des tests
Sortie Ansible et centralisation
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Gestion de la sortie standard d’Ansible
- 2.1 Contexte
- 2.2 Fichier de configuration et cowsay
- 2.3 Gestion de la colorisation de la sortie
- 3. Gestion du callback d’affichage
- 3.1 Contexte
- 3.2 Quelques plugins d’affichage alternatifs
- 3.3 Profiling des opérations
- 4. Centralisation des résultats d’exécution
- 4.1 Contexte
- 4.2 Centralisation via Syslog
- 4.3 Centralisation via Logstash (Elasticsearch)
- 4.4 Centralisation des appels à l'aide d'Ara
- 4.4.1 Origine de la création d'Ara
- 4.4.2 Installation d'Ara
- 4.4.3 Activation d'Ara avec Ansible
- 4.4.4 Test de lancement
- 4.4.5 Lancement du serveur de consultation Ara
- 5.1 Contexte
- 5.2 Structure du programme
- 5.3 Exposition du callback à Ansible
- 5.4 Nomenclature des fonctions de callback
- 5.5 Exemple de surcharge de la sortie en cas d’erreur
Écriture de modules
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Mécanisme d’appel des modules Python
- 2.1 Principe de fonctionnement
- 2.2 Activation des traces d’exécution
- 2.3 Contenu du fichier temporaire
- 2.4 Extraction du programme autoporteur
- 3. Pourquoi écrire un module ?
- 3.1 Contexte
- 3.2 Consultation du schéma
- 4. Création d’un module
- 4.1 Emplacement du programme
- 4.2 En-tête du programme
- 4.3 Spécification des arguments du module
- 4.4 Gestion des arguments du module
- 4.5 Récupération de la valeur des arguments
- 4.6 Connexion à la base
- 4.7 Transmission du résultat à Ansible
- 4.8 Test du module
- 4.9 Temps d’exécution
- 4.10 Gestion de l’aide
- 4.10.1 Variable DOCUMENTATION
- 4.10.2 Variable EXAMPLES
- 4.10.3 Variable RETURN
- 4.10.4 Variable ANSIBLE METADATA
- 4.10.5 Test d’affichage
- 4.11 Cas particulier des modules facts
- 5.1 Contexte
- 5.2 Limitations du module
- 5.3 Dépendances Python
- 5.4 En-tête du module
- 5.5 Gestion de la base de données
- 5.6 Python 2 et 3
- 5.7 Algorithme du module
- 5.8 Création d’un playbook de test
- 6.1 Contexte
- 6.2 Principe de fonctionnement du diff
- 6.3 Implémentation du diff
- 7.1 Activation du check mode
- 7.2 Prise en charge du mode check
Écriture de filtres Jinja et mécanisme de lookup
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Les filtres Jinja
- 2.1 Retour sur les filtres Jinja
- 2.2 Quelques exemples d’utilisation des filtres Jinja
- 2.2.1 Comment tester un filtre ?
- 2.2.2 Valeur par défaut
- 2.2.3 Conversion de type simple
- 2.2.4 Chargement de YAML/JSON
- 2.2.5 Gestion de listes
- 2.2.6 Calcul de somme de hachage
- 2.2.7 Combinaison de table de hachage
- 3.1 Quelques mots sur le stockage des mots de passe
- 3.2 Réentrance sur un mot de passe
- 3.3 Récupération du hash du mot de passe
- 3.4 Écriture du filtre de comparaison
- 3.4.1 Emplacement du programme
- 3.4.2 Fonction de comparaison des mots de passe
- 3.4.3 Mapping Ansible
- 3.4.4 Tests du filtre
- 4.1 Origine du besoin
- 4.2 Principe de fonctionnement du générateur de mots de passe
- 4.2.1 Écriture du générateur de mots de passe
- 5.1 Principe de fonctionnement
- 5.2 Présentation des lookups Ansible natifs
- 5.2.1 Lecture de fichiers : file
- 5.2.2 Récupération du résultat d’un template
- 5.2.3 Réalisation d'une requête DNS : dig
- 6.1 Contexte
- 6.2 Dépendance Python
- 6.3 Récupération du mot de passe
- 6.4 Intégration avec Ansible
- 6.4.1 Emplacement du fichier Python
- 6.4.2 Exposition de l’objet lookup
- 6.4.3 Code du plugin
- 6.5.1 Contenu base KeePass et présentation de KeePassX
- 6.5.2 Création du test
Les actions Ansible
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Découverte des actions Ansible
- 2.1 Fonctionnement des actions Ansible
- 2.2 Certificats SSL avec Java
- 2.3 Importation d’un certificat avec Ansible
- 3. Création du module d’action java_cert
- 3.1 Emplacement du fichier d’action
- 3.2 Structure du module d’action java_cert
- 3.3 En-tête du module
- 3.4 Contenu de la méthode run
- 3.5 Test du module action
Ansible : virtualisation et cloud
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Gestion de machines virtuelles sous ESX/VMware
- 2.1 Contexte et prérequis
- 2.2 Installation des bibliothèques requises
- 2.3 Caractéristiques de l’ESX
- 2.4 Création de la VM
- 2.5 Customisation des machines
- 2.6 Gestion du démarrage de la machine
- 2.7 Suppression de la VM
- 3. Mise au point de tests à l’aide de Monkeyble
- 3.1 Contexte
- 3.2 Installation de Monkeyble
- 3.3 Configuration d’Ansible avec Monkeyble
- 3.4 Configuration des scénarios
- 4. Gestion cloud AWS
- 4.1 Contexte
- 4.2 Configuration des accès à l’API Amazon
- 4.3 Création d’une instance EC2
- 4.4 Comment taguer ses instances ?
- 4.5 Suppression d’une instance
- 4.6 Accès réseau aux machines
- 4.7 Configuration de la clé SSH
- 4.8 Modification de la déclaration de l'instance ec2
Tester Ansible avec Podman
- 1. Objectifs du chapitre et prérequis
- 1.1 Contexte et prérequis
- 1.2 Fichiers téléchargeables
- 2. Installation de Podman
- 3. Ansible, Podman et Systemd
- 3.1 Comment faire cohabiter les conteneurs et Systemd ?
- 3.2 Choix des images à lancer
- 3.3 Alimentation du fichier d’inventaire
- 3.4 Playbook de création des conteneurs
- 3.5 Playbook de suppression des conteneurs
- 4. Les images de conteneurs
- 4.1 Présence de l’interpréteur Python
- 4.2 Installation et connexion à Mediawiki
- 4.2.1 Prérequis pour l’installation de Mediawiki
- 4.2.2 Solutions de connexions aux conteneurs
- 4.2.3 Lancement d’un proxy Squid
- 4.2.4 Utilisation du proxy
- 4.3 Pilotage de Podman à l’aide d’Ansible
- 4.3.1 Avant-propos
- 4.3.2 Idempotence et immutabilité
- 4.3.3 Image à déployer
- 4.3.4 Compilation de l’image
- 4.3.5 Utilisation de l’image
Pilotage de Kubernetes à l’aide d’Ansible
- 1. Objectifs du chapitre et prérequis
- 2. Introduction au déploiement d’éléments dans Kubernetes
- 2.1 Containers et pods
- 2.2 Mécanismes de déploiement dans Kubernetes
- 2.3 Déploiement de pods dans Kubernetes
- 2.3.1 À propos de Keycloak
- 2.3.2 Configuration de Keycloak
- 2.3.3 Définition d’un objet StatefulSet
- 2.3.4 Création d’une entrée de service
- 2.3.5 Playbook de déploiement
- 2.3.6 Test du playbook de déploiement
- 2.4 Création d’un opérateur pour Keycloak
- 2.4.1 Contexte
- 2.4.2 Installation des prérequis
- 2.4.3 Initialisation de l’opérateur
- 2.4.4 Description de la structure de l’opérateur
- 2.5 Création de l’opérateur
- 2.5.1 Patron de l’objet StatefulSet
- 2.5.2 Variables par défaut
- 2.5.3 Patron de l’objet Service
- 2.5.4 Création des objets
- 3.1 Contexte
- 3.2 Définition du nouveau type d’objet
- 3.3 Installation des prérequis
- 3.4 Création d’un playbook de test
- 3.5 Vérification et suppression des objets de test
- 3.6 Lancement de l’opérateur depuis l’extérieur du cluster
- 3.7 Test de création d’un objet Keycloak
- 3.8 Vérification des objets créés
- 4.1 Contexte
- 4.2 Configuration du registre Docker
- 4.3 Construction de l’image de l’opérateur
- 4.4 Déploiement de l’opérateur
- 4.5 Vérification de l’installation
- 4.6 Test de l’opérateur
- 4.7 Journaux d’activité de l’opérateur