Table of Contents
- Outils de gestion de la configuration Puppet Chef Ansible :
- Les fonctionnalités d’un outil de gestion Puppet Chef Ansible :
- Contrôle des mises à jour :
- Coopération :
- Contrôle de version :
- Contrôle des changements :
- Compatibilité :
- Agent vs Agentless :
- Puppet :
- Chef :
- Ansible :
- Git :
- Conclusion :
- FAQs
Puppet Chef Ansible : Dans ce cours, nous allons voir un aperçu des outils de gestion et de configuration.
Outils de gestion de la configuration Puppet Chef Ansible :
Les serveurs et les périphériques réseau doivent être maintenus à jour en permanence.
Imaginez devoir :
Installer une mise à jour sur des centaines de serveurs,
Créer un VLAN sur une dizaine de commutateurs.
Ces tâches, si elles sont réalisées manuellement :
Prennent beaucoup de temps,
Sont faciles à faire incorrectement,
Peuvent générer des erreurs humaines et des incohérences.
Les outils de gestion de configuration comme Puppet, Chef et Ansible offrent une méthode automatisée pour :
Implémenter et surveiller toutes les modifications des systèmes,
Maintenir les serveurs, le stockage, les périphériques réseau et les logiciels à jour,
Conserver une vue globale de l’état de l’infrastructure,
Appliquer des playbooks et cookbooks Puppet Chef Ansible pour gérer efficacement toutes les configurations.
Avec Puppet, Chef et Ansible, on définit l’état désiré de la configuration, et ces outils appliquent automatiquement les changements sur les systèmes ciblés. L’utilisation de Puppet, Chef et Ansible permet de réduire les erreurs humaines et d’assurer une configuration cohérente et centralisée.
L’automatisation de la configuration grâce à Puppet, Chef et Ansible est essentielle car elle permet :
De faire évoluer l’infrastructure et les logiciels rapidement,
De libérer le personnel des tâches répétitives de maintenance,
De garantir la cohérence et la fiabilité de l’ensemble des systèmes,
D’intégrer un contrôle de version avec Git pour suivre tous les changements via Puppet Chef Ansible.
Les fonctionnalités d’un outil de gestion Puppet Chef Ansible :

Nous allons maintenant voir, les différents avantages et fonctionnalité que procure un outil de gestion.
Contrôle des mises à jour :

Le 1er bénéfice d’utiliser un outil de gestion est d’avoir un contrôle global des mises à jour.
Le fait, d’utiliser un outil qui permet de centraliser la configuration des équipements, permet de nous assurer que l’appareil est bien configuré dans l’état que l’on souhaite.
Ce qui empêche toute dérive de la configuration.
Qui peu se produire lorsque des personnes installent manuellement des packages ou modifient des fichiers de configuration.
Ce qui amène à un dépannage plus long et plus difficile.
Coopération :

Le second avantage est une coopération d’équipe.
Le fait, de pouvoir stocker et centraliser les différentes configurations dans un outil de gestion, permet de facilité la coopération des équipes sur les déploiements et partage.
Contrôle de version :

Ensuite, ça nous permet de contrôler la version.
Avoir tous les fichiers de configuration dans un seul endroit signifie que nous pouvons les placer dans un système VCS (VCS : version control systems) comme le très connu « Git » .

Un système de contrôle des versions consiste à maintenir l’ensemble des versions d’un ou de plusieurs fichiers.
Ce qui est très bien pour la coopération, car plusieurs personnes peuvent travailler ensemble sur les mêmes fichiers.
Et tout le monde peut voir qui a ajouté ou modifié quels fichiers et quand.
Contrôle des changements :

Un autre avantage est de pouvoir contrôler les changements.
Étant donné que les outils qui gèrent la configuration sont basés sur du texte, c’est pour ça qu’on peut les placer sous un contrôle de version (VCS : version control system).
Avec un VCS, nous pouvons facilement voir les changements entre les fichiers de configuration, ce qui rend la révision du code, très simple.
Il est ainsi plus facile de prendre des décisions sur des modifications à apporter au réseau de production.
Compatibilité :

Et le dernier avantage porte sur une grande compatibilité.
Par exemple si vous utilisez Linux, il est possible que vous ayez différentes distributions comme Ubuntu et CentOS.
Et bien sûr, il existe des différences entre ces distributions.
L’installation d’un package nécessite différentes commandes et l’emplacement des fichiers de configuration peut aussi être différent.
Prenons comme exemple, le serveur Web Apache qui utilise différents fichiers et dossiers sur CentOS ou Ubuntu.
Et bien les outils qui gèrent la configuration, permettent de faire la différence entre ces différents systèmes, pour que l’on puisse utiliser les mêmes fichiers de configuration sans se soucier du système d’exploitation.
Agent vs Agentless :

On va maintenant voir en détail les différents outils qui gèrent la configuration.
Il en existe deux types :


Les outils « Puppet » et « Chef » sont deux exemples d’outils basés sur des agents.

Tant dit que le logiciel « Ansible » est un outil sans agent.
Puppet :

Le logiciel Puppet est un outil de gestion de la configuration utilisé pour déployer, configurer et gérer des serveurs.
Il utilise un mode opératoire de « maître-esclave ».
Il y a un maître « Puppet », et les clients exécutent un agent « Puppet » pour installer la configuration du maître.

Puppet est développé en Ruby, et utilise son propre langage pour créer et gérer des modules.
D’ailleurs son langage se base beaucoup sur le protocole REST (Representational state transfer).
La version libre de « Puppet » permet de gérer les déploiements système et applicatif, et accepte certaines machines virtuelles de chez Amazon.
Et la version commerciale permet en plus :
Chef :

Passons maintenant au logiciel « Chef ».
C’est une plate-forme d’automatisation qui configure et gère l’infrastructure.
Il utilise aussi une architecture Maître-esclave, similaire à « Puppet ».
Le serveur « Chef » gère les nœuds et stocke leurs configurations.
Chaque nœud exécute des clients « chef » et extrait les tâches de configuration du serveur « Chef ».
D’ailleurs, l’outil « chef » appelle les configurations, sous le nom de « cookbooks » qui se traduit par : «livres de cuisine».

Il a aussi été écrit en Ruby et sa version commerciale du produit est gratuite jusqu’à 5 serveurs.
Ansible :

Et le dernier logiciel qu’on va voir, c’est « Ansible ».

« Ansible » est un outil de configuration et d’orchestration, écris-en Python qui utilise YAML (Yet Another Markup Language) pour les tâches de configuration.
Ces tâches sont appelées des « playbooks ».
« Ansible » fonctionne « sans agent » et utilise SSH pour se connecter aux clients, c’est-à-dire à ces différents noeuds.
Il envoie des programmes qu’on appelle des « modules Ansible », les exécute et les supprime une fois terminé.
« Ansible » est un excellent moyen de démarrer avec l’automatisation du réseau.
Les playbooks sont faciles à lire et à écrire et comme il est sans agent, et bien, il n’y a rien à installer sur les différents équipements ou systèmes.

Pour comprendre pourquoi nous avons besoin d’un système qui va contrôler les différentes versions, nous allons voir ce qui se passe, si on n’en utilise pas…
Admettons que vous souhaitez configurer une application sur un serveur ou configurer quelque chose sur un routeur ou un commutateur.
Peu importe quoi.
Pour travailler de manière optimisée et intelligente, vous créer un fichier de configuration que vous stockez sur votre ordinateur, qui vous servira de base, pour déployer votre configuration.
Quelques jours plus tard, un de vos collègues demande votre fichier de configuration. Au lieu de lui envoyer par mail, vous créer un lien de partage, afin que tout le monde puisse travailler sur le fichier.
Et une semaine plus tard, vous souhaitez l’utiliser pour configurer un nouveau routeur, mais ce dernier, rejette le fichier…
Le problème, c’est que quelqu’un à modifier votre fichier, et il vous est impossible de savoir qui, ni même de savoir ce qui a été modifier…
Alors vous pouvez bien sûr, récupérer une sauvegarde antérieure et comparer les deux fichiers, mais c’est tout de même assez pénible…
La plupart des réseaux sont gérés par un groupe d’ingénieurs réseau, et un système de contrôle de version permet de garantir qu’il n’y a pas d’erreurs dans les fichiers de configuration, ou bien des conflits de code entre les développeurs.
De plus, ce système nous permet de garder une trace des fichiers et des dossiers.
Ce qui procure de nombreux avantages.
Par exemple :
Il existe plusieurs systèmes de contrôle de version comme le très connu « Git ».

De nos jours, Git est le choix le plus populaire.
Git :
Git est un logiciel de gestion de versions décentralisée, qui est distribuée gratuitement et en open source.
Il a été initialement développé par Linus Torvalds, qui est le créateur du noyau Linux.
Git est un traqueur de contenu, ce qui signifie que nous pouvons y stocker du contenu.
Alors même s’il est principalement utilisé pour stocker du code, et bien vous pouvez très bien l’utiliser pour n’importe quel fichier texte, comme les fichiers de configuration pour vos périphériques réseau.
Le système de contrôle de version permet de garder une trace de tous les changements qui ont eu lieu sur l’ensemble de vos fichiers.
Il existe un certain nombre d’interfaces web pour Git.
Les trois plus populaires sont :



Ces sites Web vous permettent de créer des référentiels Git, mais ont également des outils pour que vous puissiez facilement collaborer avec d’autres développeurs.
Vous pouvez y soumettre des problèmes, laisser des commentaires, etc.
Alors, expliquer le fonctionnement en détail de « Git », sort du programme CCNA.
Cependant, si vous souhaitez en savoir plus, il existe un excellent tuto d’introduction pour apprendre les bases de « Git ».
Voici le lien pour y accéder :
https://guides.github.com/activities/hello-world/
Conclusion :
Dans cette leçon, nous avons parlé des outils de gestion de configuration Puple, Chef, Ansible et des systèmes de contrôle de version.
Le monde du réseau évolue et s’éloigne peu à peu de la CLI pour se diriger vers un monde où nous utilisons Puppet, Chef, Ansible.
Les systèmes de contrôle de version comme « Git » étaient autrefois réservés pour les développeurs.
Mais de nos jours, le stockage des fichiers de configuration sous un système de contrôle de version est tout aussi important pour nos équipements réseau avec l'aide de Puppet, Chef, Ansible.
Nous avons aussi vu, différents outils de gestion de configuration Puple, Chef, Ansible, que nous pouvons utiliser pour nos systèmes et périphériques réseau.
Si c’est nouveau pour vous, je vous recommande fortement d’essayer « Ansible ».
Parce qu’il est sans agent, et qu’il ne faut que quelques minutes pour commencer et exécuter son premier « playbook » Puppet, Chef, Ansible.


Pour conclure, au lieu de stocker des fichiers de configuration sur votre ordinateur ou vos lecteurs réseau, essayez plutôt « GitHub » ou bien « GitLab » avec Puppet, Chef, Ansible.
N'oubliez pas de vous abonner à la chaîne Youtube.
Pour approfondir vos connaissances sur l’automatisation et la gestion des infrastructures, découvrez l’impact et les services essentiels du Cloud Computing et comprenez comment il complète l’utilisation de Puppet, Chef et Ansible.
FAQs
Qu’est-ce que Puppet, Chef et Ansible ?
Ce sont des outils de gestion et d’automatisation de la configuration qui permettent de déployer, configurer et maintenir des serveurs, des périphériques réseau et des applications de manière centralisée et automatisée.
Pourquoi utiliser un outil de gestion de configuration ?
Ils permettent de réduire les erreurs humaines, d’automatiser les tâches répétitives, de maintenir les systèmes à jour, de gérer les changements et de centraliser les configurations pour faciliter la coopération entre les équipes.
Quelle est la différence entre les outils basés sur agent et sans agent ?
Puppet et Chef utilisent un modèle agent, où un agent installé sur les systèmes clients applique les configurations définies sur le serveur central.
Ansible est sans agent, il utilise SSH pour exécuter des tâches directement sur les systèmes cibles sans installation préalable.
Qu’est-ce qu’un playbook dans Ansible ?
Un playbook est un fichier écrit en YAML qui contient une série de tâches à exécuter sur les systèmes cibles, permettant l’automatisation complète des configurations et du déploiement.
Qu’est-ce qu’un cookbook dans Chef ?
Un cookbook est un ensemble de fichiers et de scripts définissant les configurations et les tâches à appliquer sur les serveurs, utilisé pour déployer et maintenir l’infrastructure de manière cohérente.
Pourquoi le contrôle de version est-il important pour les configurations ?
Le contrôle de version avec Git ou un autre VCS permet de suivre toutes les modifications, de collaborer facilement, d’éviter les conflits et de revenir à une version précédente si nécessaire.
Puppet, Chef et Ansible sont-ils compatibles avec tous les systèmes ?
Oui, ces outils sont compatibles avec plusieurs systèmes d’exploitation et distributions Linux, et peuvent gérer différents environnements tout en appliquant les mêmes configurations sans problème.
Quels sont les principaux avantages de Puppet, Chef et Ansible ?
Automatisation des tâches répétitives
Réduction des erreurs humaines
Meilleure collaboration entre équipes
Gestion centralisée des configurations
Contrôle de version et suivi des changements
Compatibilité multi-systèmes
Comment commencer avec Ansible ?
Il suffit d’installer Ansible sur un système central, de créer un fichier playbook et de l’exécuter via SSH sur les systèmes cibles. C’est rapide et ne nécessite aucune installation sur les serveurs clients.
