Analyste SOC

Réseaux

Cours sur Puppet

Les ficelles de la sécurité pour sécuriser vos infrastructures informatiques

Découvrez la puissance de Puppet avec notre cours spécialisé. Apprenez à automatiser et à gérer efficacement vos infrastructures informatiques grâce à cet outil de renommée mondiale. Acquérez les compétences nécessaires pour configurer, déployer et sécuriser vos systèmes avec Puppet. Que vous soyez administrateur système, ingénieur DevOps ou professionnel de la cybersécurité, ce cours vous permettra d’optimiser vos opérations informatiques et de garantir la stabilité de votre infrastructure. Rejoignez-nous dès maintenant pour maîtriser Puppet et ouvrir de nouvelles perspectives professionnelles.”

55 min

4.4/5

4,4/5

Sommaire

🔰 Introduction

La gestion des applications et des services en production est devenue un travail difficile, et cela nécessite beaucoup d’étapes qui deviennent répétitives d’une machine à une autre.  Tout déploiement requiert :

  • Ajouter des comptes utilisateurs et des mots de passe
  • Configurer les paramètres de sécurité et les privilèges
  • Installer tous les paquets nécessaires au fonctionnement des applications
  • Personnaliser les fichiers de configuration pour chacun de ces paquets
  • Créer des bases de données et des comptes d’utilisateurs de bases de données puis charger quelques données initiales
  • Configurer les services qui doivent fonctionner
  • Déployer le code de l’application et les ressources nécessaires
  • Redémarrer les services affectés
  • Configurer la machine pour sa surveillance

C’est fort à faire – l’idéal serait de pouvoir automatiser les déploiements et leurs suivis à partir d’un template, d’une image que l’on pourrait recopier et personnaliser à l’envie.

 

C’est justement ce que permet de faire Puppet et bien plus, comme:

  • Vérification et synchronisation régulière de la configuration de chaque machine déployée par rapport à une version centrale de référence
  • Centralisation des changements sur une seule version afin qu’ils soient automatiquement étendus à l’ensemble du parc sous la tutelle de Puppet
  • Disposer d’une procédure de build qui soit indépendante des OS des machines du parc et qui soit à jour
  • Maîtriser les versions déployées et leur historique afin de revenir en arrière dans le temps lors d’éventuels problèmes

Puppet est un logiciel de gestion de configuration qui automatise le packaging et le provisioning d’applications sur des nœuds clients qui peuvent être des hôtes ou des serveurs.

🕹️ Version de Puppet

Puppet gère les déploiements de façon centralisée, des nœuds « on premise » (bare metal) ou virtualisés (ex. VMware) voire dans le cloud sur des instances Amazon EC2.

Puppet se décline en plusieurs versions :

  • Communataire. C’est un projet sous licence Apache 2.0. La version actuelle de Puppet est la version 6.16. Sa première version est sortie en 2005.
  • Entreprise, version actuelle 2019.8, qui est libre au téléchargement et son utilisation est gratuite jusqu’à la prise en charge de 10 nœuds. Sinon Puppet Entreprise s’accompagne d’une offre de support technique de Puppet Labs et de fonctionnalités additionnelles par rapport à la version communautaire.
  • Remediate qui est une version packagée spécialisée dans la gestion des patchs résolvant les vulnérabilités des paquets afin de réduire les failles de sécurité.
  • CD4PE Continuous Delivery for Puppet Enterprise (PE) est un outil permettant de rationaliser et de simplifier l’intégration continue et la livraison du code Puppet. CD4PE offre un workflow pour tester et déployer le code Puppet dans différents environnements.
  • Projet Nebula (actuellement en version beta) Puppet cherche à automatiser le déploiement d’applications dans le cloud.

A ces versions s’ajoutent :

  • bolt est un outil d’orchestration open source qui automatise le travail manuel nécessaire à la maintenance de l’infrastructure. bolt automatise les tâches que l’on effectue en fonction des besoins ou dans le cadre d’un workflow d’orchestration plus important. Par exemple, avec bolt on peut réparer et mettre à jour des systèmes, dépanner des serveurs, déployer des applications ou arrêter et redémarrer des services. bolt peut être installé sur un poste de travail local et se connecte directement à distance sur des cibles avec SSH ou WinRM (Windows Remote Management), de sorte qu’il ne s’avère pas nécessaire d’installer le logiciel agent Puppet.
  • Puppet Development Kit (PDK) fournit des outils de test intégrés et une interface en ligne de commandes pour aider à développer, valider et tester les modules.

📡 La plate-forme Puppet

Langage

Puppet a été écrit en langage Ruby.

Puppet utilise un langage DSL (Domain-Specific Language) déclaratif dans son environnement de ligne de commandes. Cela signifie qu’il suffit de décrire le ou les états finaux souhaités du système et Puppet détermine les étapes nécessaires pour y parvenir. Contrairement à un langage impératif, on n’a pas besoin de comprendre toutes les étapes nécessaires pour atteindre l’état final souhaité.

 

Modèle

Puppet utilise un modèle idempotent.

L’idempotence est un principe important lorsqu’on parle d’outils CM (Configuration Management) : cela signifie que l’on peut exécuter Puppet plusieurs fois en toute sécurité et qu’il n’apportera des modifications au système que si l’état du système ne correspond pas à l’état configuré.

Puppet est compatible avec tous les principaux systèmes d’exploitation – Linux, *nix, Windows et MacOS. C’est sans aucun doute l’un des principaux moteurs de son adoption généralisée, car de nombreuses solutions concurrentes ne sont disponibles que sur les plates-formes *nix.

 

Concurrents

Les concurrents directs de Puppet sont :

  • Chef,
  • Ansible,
  • Vagrant,
  • Salt,
  • SCCM (System Center Configuration Manager) de Microsoft,
  • Microsoft PowerShell Desired State Configuration (DSC),
  • CFEngine,
  • Bcfg2,
  • LCFG
  • Etc.

📚 Fonctionnement

Le Puppet master communique avec un agent Puppet via HTTPS (HyperText Transfer Protocol Secure) avec vérification du client.

Lorsque l’agent Puppet doit faire une demande ou une réponse au Puppet master, il fait une demande HTTPS à l’une des interfaces disponibles HTTP fournie par le Puppet master.

Puppet - Gestion de configuration
  1. Les agents Puppet collectent toutes les informations de configuration sur leurs nœuds particuliers en utilisant des facts et les envoient ensuite au Puppet master.
  2. Après avoir obtenu toutes les informations, le Puppet master compile un catalogue basé sur la façon dont les nœuds doivent être configurés. Le Puppet master renvoie ensuite le catalogue aux agents.
  3. Chaque agent utilise ce catalogue et les informations qu’il contient pour effectuer les mises à jour nécessaires de la configuration de ses nœuds, puis fait un rapport au Puppet master.
  4. Puppet master peut également partager les rapports avec un outil tiers si nécessaire.
Puppet - Gestion de configuration

🥊 Les facts legacy vs essentiels

  1. ll existe des facts dits legacy et des facts dits essentiels qui sont en fait des structures de facts, parfois spécifiques à un type d’OS (ex. ec2_metadata, ec2_userdata) ou qui comportent des spécificités liées à l’OS du client. Le distinguo est sur le fait que les facts legacy sont unitaires, ils ne retournent qu’une seule valeur alors que les facts essentiels retournent des structures de facts legacy.

    Le nombre de facts existants est conséquent, près de 150.

     

    Quelques exemples de facts legacy concernant un nœud, tels que :

hostname => camembert
ipaddress => 192.168.10.250
operatingsystem => CentOS
operatingsystemrelease => 7.0
kernelversion => 5.0.11
architecture => x86_64
fqdn => puppet.camembert.silicom.fr

Exemple de fact essentiel: os

facter os {
	architecture => "amd64",
	distro => {
		codename => "xenial",
		description => "Ubuntu 16.04 LTS",
		id => "Ubuntu",
		release => {
			full => "16.04",
			major => "16.04"
		}
	},
	family => "Debian",
	hardware => "x86_64",
	name => "Ubuntu",
	release => {
		full => "16.04",
		major => "16.04"
	},
	selinux => {
		enabled => false
	}
}

🏢 Puppet entreprise

Beaucoup d’entreprises commencent avec la version open source pour se rendre compte qu’elles n’ont pas le temps ou les ressources nécessaires pour maintenir le déploiement, ou qu’elles ont besoin de fonctionnalités supplémentaires qu’elles doivent construire et maintenir elles-mêmes.  

Voici quelques-unes des raisons les plus courantes pour lesquelles les grandes entreprises choisissent Puppet Enterprise :

Packaging

Puppet Enterprise comprend plus de 40 projets open source (MCollective, hiera, r10k, etc.) dans un installateur simple. Cela permet aux équipes de gagner un temps précieux dans le packaging et la gestion des dépendances pour leurs déploiements Puppet.

Évolutivité immédiate

Puppet Enterprise est stable, testé et renforcé et comprend un installateur multi-master pour les déploiements de grande envergure.

Interface utilisateur

Un environnement graphique contenant une vaste collection de fonctionnalités : des tableaux de bord pour une surveillance facilitée, des capacités de reporting avancées, des capacités d’alerte, un installateur unifié et la possibilité de déployer des agents en quelques clics de souris.

Puppet Entreprise
Puppet Entreprise

🚩 Conclusion

Le logiciel Puppet est Open Source donc ouvert à la modification et à la personnalisation, mais il faut en avoir le temps et les compétences. Vous obtenez un outil complet avec des capacités et des fonctionnalités de gestion de configuration de base prêtes à l’emploi.

Sa base de modules Puppet Forge est conséquente. Ce sont des unités de code réutilisables et partageables qui peuvent à leur tour être utilisées pour étendre Puppet à toute votre infrastructure en automatisant des tâches telles que la mise en place d’une base de données, d’un serveur web ou d’un serveur de messagerie, entre autres. Ainsi, par exemple, si on automatise la mise à disposition et le déploiement d’un nouveau serveur web Apache, il n’est pas nécessaire d’écrire votre propre jeu de commandes Puppet à partir de zéro – il suffit de se rendre sur le dépôt des modules de Puppet Forge et de télécharger tout ce dont on a besoin à partir de la bibliothèque de modules de plus de 6500 modules.

En tant que technologie mature et éprouvée par l’industrie, Puppet bénéficie d’une communauté d’utilisateurs importante et active, d’une pléthorique documentation gratuite, et d’autres ressources en ligne connexes telles que les wikis et les listes de diffusion.

Cependant, la version Open Source de Puppet ne dispose pas de l’interface graphique de gestion très performante disponible dans l’offre Puppet Enterprise, largement considérée comme la meilleure de sa catégorie. Certes, la CLI peut toujours faire tout ce que l’interface graphique peut faire, mais cette dernière rend la vie beaucoup plus facile, en particulier pour les débutants qui essaient d’apprendre le système. Le personnel expérimenté des opérations, qui souhaite un moyen rapide et visuel de mettre en œuvre et de surveiller les déploiements sur les grandes installations, apprécie également le tableau de bord centralisé de l’interface graphique.

En fait, beaucoup choisissent de mettre en œuvre Foreman comme interface graphique alternative et gratuite pour s’interfacer avec Puppet.

Compte tenu de ce qui a été dit, Puppet Open Source est principalement utilisé dans les petites infrastructures dans le cadre de déploiements.

Puppet est devenu un standard de facto pour la gestion de la configuration. Il est quelque peu chahuté par Ansible (première version en 2012) car plus simple dans son codage avec l’emploi du langage YAML (Yet Another Markup Language) et ne requiert pas d’agent sur les clients étant donné qu’il utilise SSH pour dialoguer. Le projet Puppet a en partie adopté l’outil bolt pour cette raison.

Puppet requiert de maîtriser son langage déclaratif DSL afin de l’utiliser.

Grâce à Puppet, les administrateurs système sont désormais en mesure d’effectuer toutes les tâches qui étaient autrefois considérées comme fastidieuses. Les tâches telles que le test, la maintenance, l’exploitation et l’application des changements dans le logiciel, quel que soit l’endroit où il s’exécute, ne font plus transpirer les administrateurs système depuis que cet outil DevOps, Puppet, est venu à leur rescousse !

Envie d’aller plus loin sur Puppet ?

Commencez votre formation en cybersécurité !

Lancez votre carrière en cybersécurité et formez-vous au métier qui vous correspond. Notre plateforme en ligne vous permet de vous entraîner à votre rythme pour une montée en compétences rapide et efficace.

100% en ligne

Théorie & Pratique

Personnalisé par niveau

Commencez votre formation en cybersécurité

Formation

Carrière

Cybersécurité

100% en ligne

Donnez un nouveau souffle à votre carrière avec nos formations cybersécurité

 Puppet est un outil open-source de gestion de configuration et d’automatisation. Il permet de déployer, configurer et gérer de manière cohérente et efficace les infrastructures informatiques, des serveurs aux dispositifs réseau.

L’utilisation de Puppet offre plusieurs avantages, notamment l’automatisation des tâches de configuration, la cohérence des configurations à grande échelle, la réduction des erreurs humaines, la facilité de déploiement et la gestion centralisée des infrastructures.

Puppet offre des fonctionnalités telles que la gestion des fichiers de configuration, la gestion des paquets logiciels, la gestion des services, la gestion des utilisateurs et des groupes, la surveillance des ressources, et bien plus encore.

Puppet Master est le serveur central qui stocke les configurations et gère les agents Puppet, tandis que Puppet Agent est le logiciel installé sur les machines cibles qui exécute les instructions du Puppet Master pour appliquer et maintenir les configurations.

Puppet est compatible avec une large gamme de systèmes d’exploitation, tels que Linux (Red Hat, CentOS, Ubuntu, etc.), Windows, macOS, Solaris, AIX, et bien d’autres.

Puppet propose des fonctionnalités de sécurité intégrées telles que le chiffrement des communications, l’authentification des agents, l’accès basé sur les rôles (RBAC), et la gestion des secrets. Cela garantit l’intégrité et la confidentialité des configurations.

Oui, Puppet bénéficie d’une vaste communauté d’utilisateurs et de développeurs qui partagent leurs connaissances et leur expertise. Vous pouvez accéder à la documentation officielle de Puppet, aux forums de la communauté et aux groupes d’utilisateurs pour obtenir de l’aide, des conseils et des solutions aux problèmes rencontrés.

icon lockcadenas

Contenu réservé aux abonnés

Accéder au cours complet en vous inscrivant et commencez votre formation cybersécurité !

  • Plus de 700h de contenu disponible
  • 6 parcours de formation
  • Parcours certifiants
  • 100% en ligne et autonome

Mail

information@seela.io