Tutoriel Puppet - Solution unique pour la gestion de la configuration

Puppet Tutorial est le deuxième blog de la série de blogs Puppet. Il parle de l'architecture Puppet, des composants et d'un exemple pour déployer mysql et php en utilisant Puppet.

Tutoriel sur les marionnettes

Puppet Tutorial est le deuxième blog de la série de blogs Puppet. J'espère que vous avez lu mon précédent blog sur ' Qu'est-ce que la marionnette »Qui explique la gestion de la configuration et pourquoi il est important à l'aide de cas d'utilisation.



Dans ce didacticiel sur les marionnettes, les sujets suivants seront abordés:



Qu'est-ce que la gestion de la configuration?

Dans mon blog précédent , J'ai donné une introduction à la gestion de la configuration et aux défis qu'elle nous aide à surmonter. Dans ce didacticiel Puppet, je vais vous expliquer les différentes activités interdépendantes de la gestion de la configuration.Mais avant cela, comprenons ce que c'est Élément de configuration (CI). Un élément de configuration est un composant de service, un élément d'infrastructure ou tout autre élément qui doit être géré pour garantir le succès de la prestation des services. Des exemples de CI comprennent les documents d'exigences individuels, les logiciels, les modèles et les plans.



La gestion de la configuration comprend les éléments suivants:

  • Identification de la configuration
  • La gestion du changement
  • Comptabilisation de l'état de la configuration
  • Audits de configuration

Le schéma ci-dessous explique ces composants:

Composants de gestion de la configuration - Tutoriel Puppet - Edureka



Identification de la configuration: C'est le processus de:

  • Étiquetage des éléments de configuration logicielle et matérielle avec des identifiants uniques
  • Identifier la documentation qui décrit un élément de configuration
  • Regroupement des éléments de configuration associés dans des lignes de base
  • Étiquetage des révisions des éléments de configuration et des lignes de base.

La gestion du changement: C'est une approche systématique pour faire face au changement à la fois du point de vue d'une organisation et de l'individu.

Comptabilisation de l'état de la configuration: Il comprend le processus d'enregistrement et de rapport des descriptions des éléments de configuration (par exemple, matériel, logiciel, micrologiciel, etc.) et tous les écarts par rapport à la ligne de base pendant la conception et la production. En cas de problèmes suspects, la vérification de la configuration de base et les modifications approuvées peuvent être rapidement déterminées.

Audits de configuration: Les audits de configuration fournissent un mécanisme pour déterminer dans quelle mesure l'état actuel du système est cohérent avec la dernière base de référence et la documentation. Fondamentalement, il s'agit d'un examen formel pour vérifier que le produit livré fonctionnera comme annoncé, promu ou promis de quelque manière que ce soit aux clients. Il utilise les informations disponibles à la suite des audits et des tests de qualité, ainsi que les informations comptables sur l'état de la configuration, pour fournir l'assurance que ce qui était requis a été construit.

Comprenons la gestion de la configuration avec un cas d'utilisation. Supposons que vous deviez mettre à jour un logiciel particulier ou que vous souhaitiez le remplacer.Dans ce cas, le diagramme ci-dessous doit être suivi pour une gestion de la configuration réussie:

Le moment est venu de comprendre l'architecture des marionnettes.

Tutoriel de marionnettes - Architecture de Fantoche

Puppet utilise une architecture maître-esclave. Le diagramme ci-dessous illustre la même chose:

générer une chaîne aléatoire en java

Les fonctions suivantes sont exécutées dans l'image ci-dessus:

  • L'agent des marionnettes envoie les faits au maître des marionnettes. Les faits sont essentiellementpaire de données clé / valeur qui représente certains aspects de l'état de l'esclave, comme son adresse IP, sa disponibilité, son système d'exploitation ou s'il s'agit d'une machine virtuelle. J'expliquerai les faits en détail plus tard dans le blog.
  • Puppet Master utilise les faits pour compiler un catalogue qui définit comment l'esclave doit être configuré. Catalogueest un document qui décrit l'état souhaité pour chaque ressource que Puppet Master gère sur un esclave. J'expliquerai les catalogues et les ressources en détail plus tard.
  • Puppet Slave fait un rapport au maître indiquant que la configuration est terminée, ce qui est visible dans le tableau de bord Puppet.

Regardez cette vidéo du didacticiel Puppet pour une compréhension approfondie de Puppet.

Tutoriel de marionnettes pour les débutants | Formation DevOps | Edureka

Tutoriel de marionnettes - Communication entre le maître de marionnette et l'esclave

Puppet Master et Slave communiquent parun canal crypté sécurisé avec l'aide de SSL. Le diagramme ci-dessous illustre la même chose:

Comme vous pouvez le voir sur l'image ci-dessus:

  • Puppet Slave demande un certificat Puppet Master.
  • Après avoir reçu le certificat Puppet Master, Master demande un certificat Esclave.
  • Une fois que le maître a signé le certificat esclave, l'esclave demande la configuration / les données.
  • Enfin, Puppet Master enverra la configuration à Puppet Slave.

Jetons maintenant un coup d'œil aux différents composants de Puppet.

Tutoriel Puppet - Composants de Fantoche

Manifeste: Chaque esclave a ses détails de configuration dans Puppet Master, écrits dans la langue native de Puppet. Ces détails sont écrits dans la langue que Puppet peut comprendre et sont appelés Manifestations. Ils sont composés de code Puppet et leurs noms de fichiers utilisent le .pp extension. Ce sont essentiellement des programmes Puppet.
Par exemple: vous pouvez écrire un manifeste dans Puppet Master qui crée un fichier et installe le serveur Apache sur tous les esclaves Puppet connectés au Puppet Master.

Module: Un module Puppet est une collection de manifestes et de données (comme des faits, des fichiers et des modèles), et ils ont une structure de répertoires spécifique. Les modules sont utiles pour organiser votre code Puppet, car ils vous permettent de diviser votre code en plusieurs manifestes. Les modules sont des ensembles autonomes de code et de données.

Ressource: Les ressources sont l'unité fondamentale pour la modélisation des configurations système. Chaque ressource décrit certains aspects d'un système, comme un service ou un package spécifique.

Caractère: Facter rassemble des informations de base (faits) sur Puppet Slave telles que les détails du matériel, les paramètres réseau, le type et la version du système d'exploitation, les adresses IP, les adresses MAC, les clés SSH, etc. Ces faits sont ensuite mis à disposition dans les Manifestes de Puppet Master en tant que variables.

Mcollective: C'est un framework qui permet d'exécuter plusieurs jobs en parallèle sur plusieurs esclaves. Il remplit diverses fonctions telles que:

  • Interagissez avec des clusters d'esclaves, que ce soit en petits groupes ou en très gros déploiements.
  • Utilisez un paradigme de diffusion pour distribuer les demandes. Tous les esclaves reçoivent toutes les demandes en même temps, les demandes ont des filtres attachés et seuls les esclaves correspondant au filtre agiront sur les demandes.
  • Utilisez des outils de ligne de commande simples pour appeler des esclaves distants.
  • Rédigez des rapports personnalisés sur votre infrastructure.

Catalogues: Un catalogue décrit l'état souhaité de chaque ressource gérée sur un esclave. Il s'agit d'une compilation de toutes les ressources que le Puppet Master applique à un esclave donné, ainsi que des relations entre ces ressources.Les catalogues sont compilés par un Puppet Master à partir de Manifests et de données fournies par l'esclave (telles que des faits, des certificats et un environnement le cas échéant), ainsi que par des données externes facultatives (telles que des données d'un classifieur esclave externe, des ressources exportées, et fonctions). Le maître sert ensuite le catalogue compilé à l'esclave sur demande.

Maintenant, dans ce didacticiel sur les marionnettes, ma prochaine section se concentrera sur la pratique.

Tutoriel sur les marionnettes - Pratique

Je vais vous montrer comment déployer MySQL et PHP de Puppet Master à Puppet Slave. J'utilise un seul esclave à des fins de démonstration, il peut y avoir des centaines d'esclaves connectés à un maître. Pour déployer PHP et MySQL, j'utiliserai des modules prédéfinis disponibles sur forge.puppet.com. Vous pouvez également créer vos propres modules.

Étape 1: Dans Puppet Master, installez les modules MySQL et PHP.

Exécutez ceci:

1) module puppet installer puppetlabs-mysql –version 3.10.0

Ce module MySQL installe, configure et gère le service MySQL. Ce module gère à la fois l'installation et la configuration de MySQL, ainsi que l'extension de Puppet pour permettre la gestion des ressources MySQL, telles que les bases de données, les utilisateurs et les subventions.

2) module puppet install mayflower-php –version 4.0.0-beta1

Ce module est utilisé pour gérer PHP, en particulier php-fpm. PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP FastCGI avec quelques fonctionnalités supplémentaires utiles pour les sites de toute taille, en particulier les sites plus fréquentés.

obtenir la longueur du tableau en javascript

Étape 2: Dans Puppet Manifests incluent le serveur MySQL et PHP.

Exécutez ceci: vi /etc/puppet/manifests/site.pp

Vous pouvez utiliser n'importe quel autre éditeur comme vim, gedit etc. Dans ce fichier site.pp, ajoutez ce qui suit:

include ':: mysql :: server' include ':: php'

Sauvegarder et quitter.

Étape 3: Puppet Slaves extrait sa configuration du maître périodiquement (toutes les 30 minutes). Il évaluera le manifeste principal et appliquera le module qui spécifie la configuration de MySQL et de PHP. Si vous souhaitez l'essayer immédiatement, vous devez exécuter la commande suivante sur chaque nœud esclave:

Exécutez ceci: agent de marionnettes -t

Donc MySQL et PHP sont installés avec succès sur le nœud Esclave.

Étape 4: Pour vérifier la version de MySQL et PHP installée:

Exécutez ceci:

1) mysql -v

2) version php

Toutes nos félicitations! MySQl et PHP sont opérationnels dans votre Puppet Slave. Ici, je ne vous ai montré qu'un seul esclave, mais imaginez s'il y a des centaines d'esclaves. Dans ce scénario, votre travail devient si simple. Spécifiez simplement les configurations dans Puppet Master et Puppet Slaves évaluera automatiquement le manifeste principal et appliquera le module qui spécifie la configuration de MySQL et PHP.

Si vous avez trouvé ceci Tutoriel sur les marionnettes pertinent, Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka DevOps aide les apprenants à acquérir une expertise dans divers processus et outils DevOps tels que Puppet, Jenkins, Nagios et GIT pour automatiser plusieurs étapes dans SDLC.