DÉVERROUILLEZ LE MONDE DE L'IT

Apprentissage Sans Frontières

Accédez gratuitement à nos supports de cours et élargissez vos horizons en IT

Abonnez-vous à la Newsletter & Accédez à des Contenus Exclusifs

Puppet Chef Ansible : Outils auto & gestion config

Puppet Chef Ansible : Outils auto & gestion config

Damien.SO Damien.SO
14 minutes de lecture

Écouter l'article
Audio is generated by DropInBlog's AI and may have slight pronunciation nuances. Learn more

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 maintenant que vous devez installer une mise à jour sur des centaines de serveurs, ou même créer un VLAN sur une dizaine de commutateurs.

Ce sont des tâches pas très intéressantes à faire manuellement.

Parce que ça prend du temps et qu’il est facile de faire des erreurs si on fait tout à la main.

Les outils qui gèrent la configuration offrent une méthode automatisée pour implémenter et surveiller l’ensemble des modifications de nos systèmes.

Ça peut être des serveurs, du stockage, des périphériques réseau et même des logiciels.

Le principal but est de maintenir l’ensemble de ces systèmes à jours, tout en gardant une vue d’ensemble de leurs états.

Dans ces outils, on définit l’état qu’on souhaite dans une configuration et l’outil de gestion utilise l’automatisation pour faire correspondre cet état sur les systèmes ciblés.

Le fait de gérer de manière automatique la configuration est très important, car ça permet de faire évoluer l’infrastructure et les logiciels sans avoir à bloquer du personnel pour maintenir à jours, l’ensemble systèmes.

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 quini 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 fichiersmais 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.

« Retour au blog