+ de 700 vidéos sur le CCNA
  • N°1 de la certification Cisco Francophone
  • + de 8000 abonnés
  • + de 400 000 vidéos vues
Abonnez-vous à notre chaîne YouTube

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

| 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 faite 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

.

| 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 peut se produit 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 » .

Image associée

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 basés sur l’agent.
    C’est-à-dire qui demande obligatoirement l’installation d’un agent sur le système que vous souhaitez gérer.
  •  | Et les outils sans agent.
    Qui eux, ne nécessite aucun agent ou logiciel sur le système à gérer.

Image associéeImage associée

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

Image associée

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

.

Puppet

Image associée

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

Image associée

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 :

  •  De gérer les machines virtuelles VMware
  •  D’avoir une interface graphique pour la gestion
  •  D’automatiser et programmer les déploiements
  •  D’avoir une plate-forme de développement pour tous les environnements
  •  Et de gérer individuellement les droits utilisateurs.

.

Chef

Image associée

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».

Image associée

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

Ansible

Image associée

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

Résultat de recherche d'images pour "python"

« 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.

VCS : version control system

.

| 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 ai 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 :

  •  | De savoir qui a apporté des modifications à nos fichiers.
  •  | De créer plusieurs versions de fichiers.
  •  | De pouvoir revenir à une version précédente.
  •  | D’être en mesure, de travailler tous ensemble.
  •  | Et de partager des fichiers et des dossiers avec d’autres personnes.

.

Il existe plusieurs systèmes de contrôle de version comme le très | connu « Git ».

Image associée

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:

  •  | GitHub
  •  | GitLab
  •  | Et Bitbucket

Image associéeImage associéeImage associée

.

.

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 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

  •  l’automatisation du réseau
  •  la gestion de la configuration
  •  et les scripts pour gérer notre infrastructure et nos périphériques réseau.

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.

.

Nous avons aussi vu, différents outils de gestion de configuration, 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 ».

Image associéeImage associée

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 ».

Ces deux outils sont gratuits et illimités. |

.

Quiz

.

Question 1

Les outils « Puppet » et « Chef » sont deux exemples d’outils basés ?

sur des agents
sans agent

C’est-à-dire qui demande obligatoirement l’installation d’un agent sur le système que vous souhaitez gérer.

Question 2

Un système de contrôle des versions consiste à maintenir l’ensemble des versions d’un ou de plusieurs fichiers.

Vrai
Faux

Ce qui est très bien pour la coopération, car plusieurs personnes peuvent travailler ensemble sur les mêmes fichiers.

.

Question 3

.

Quel logiciel est un outil de configuration et d’orchestration, écrit en Python qui utilise YAML (Yet Another Markup Language) pour les tâches de configuration ?

Puppet
Chef
Ansible

Question 4

Avec un VCS (VCS : version control system), nous pouvons facilement voir les changements entre les fichiers de configuration, ce qui rend la révision du code, très simple ?

Vrai
Faux

Il est ainsi plus facile de prendre des décisions sur des modifications à apporter au réseau de production.

.

Question 5

.

Quel logiciel est un outil de gestion de la configuration utilisé pour déployer, configurer et gérer des serveurs ?

Puppet
Chef
Ansible

.

Suivez le parcours CCNA sur le site Formip

Retrouver de nombreuses vidéos de cours sur la chaine Youtube Formip