Tutoriel Chef - Transformer l'infrastructure en code

Chef Tutorial est le deuxième blog de la série de blogs Chef. Ce blog explique l'architecture de Chef et les composants de Chef comme les livres de cuisine, les recettes, etc. avec des exemples.

Tutoriel du chef

Chef Tutorial est le deuxième blog de la série de blogs Chef. Dans mon blog précédent , J'ai expliqué ce qu'est Chef, Configuration Management et comment Chef réalise la gestion de la configuration à l'aide d'un cas d'utilisation de Gannett.



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



Je suis sûr qu'après avoir lu mon blog précédent vous devez être curieux de savoir comment fonctionne exactement Chef. La première section de ce blog Tutoriel Chef vous expliquera en détail l'architecture Chef, ce qui dissipera tous vos doutes.



Tutoriel du chef - Architecture du chef

Comme indiqué dans le diagramme ci-dessous, il existe trois composants principaux de Chef:

  • Poste de travail
  • Serveur
  • Nœuds

Chef Architecture - Tutoriel Chef - Edureka

Tutoriel Chef - Workstation



Le poste de travail est l'emplacement à partir duquel toutes les configurations Chef sontgéré. Cette machine contient toutes les données de configuration qui peuvent ensuite être transmises au serveur Chef central. Ces configurations sont testées sur le poste de travail avant de le pousser dans le serveur Chef. Un poste de travail se compose d'un outil de ligne de commande appelé Couteau, qui est utilisé pour interagir avec le serveur Chef. Il peut y avoir plusieurs stations de travail qui gèrent ensemble le serveur Chef central.

Les postes de travail sont responsables de l'exécution des fonctions ci-dessous:

  • Rédaction de livres de recettes et de recettes qui seront ensuite transférés vers le serveur Chef central
  • Gestion des nœuds sur le serveur Chef central

Maintenant, comprenons les points mentionnés ci-dessus un par un.

Rédaction de livres de recettes et de recettes qui seront ensuite transférés vers le serveur Chef central

Recettes: Une recette est un ensemble de ressources qui décrit une configuration ou une stratégie particulière. Il décrit tout ce qui est nécessaire pour configurer une partie d'un système. L'utilisateur écrit des recettes qui décrivent comment Chef gère les applications et les utilitaires (tels que Apache HTTP Server, MySQL ou Hadoop) et comment ils doivent être configurés.

Ces recettes décrivent une série de ressources qui doivent être dans un état particulier, c'est-à-dire des packages qui doivent être installés, des services qui doivent être exécutés ou des fichiers qui doivent être écrits.

Plus tard dans le blog , Je vais vous montrer comment écrire une recette pour installer le package Apache2 sur les nœuds Chef en écrivant un code ruby ​​dans Chef Workstation.

Livres de cuisine: Plusieurs recettes peuvent être regroupées pour former un livre de recettes. Un livre de recettes définit un scénario et contient tout ce qui est nécessaire pour prendre en charge ce scénario:

  • Recettes, qui spécifie les ressources à utiliser et l'ordre dans lequel elles doivent être appliquées
  • Valeurs d'attribut
  • Distributions de fichiers
  • Modèles
  • Extensions de Chef, telles que bibliothèques, définitions et ressources personnalisées

Gestion des nœuds sur le serveur Chef central

Le système Workstation disposera des utilitaires de ligne de commande nécessaires pour contrôler et gérer tous les aspects du serveur Chef central. Des choses comme l'ajout d'un nouveau nœud au serveur Chef central, la suppression d'un nœud du serveur Chef central, la modification des configurations de nœud, etc. peuvent tous être gérés à partir du poste de travail lui-même.

Voyons maintenant quels composants de Workstation sont nécessaires pour exécuter les fonctions ci-dessus.

Les postes de travail comportent deux composants principaux:

Utilitaire de couteau: Cet outil de ligne de commande peut être utilisé pour communiquer avec le serveur Chef central depuis Workstation. L'ajout, la suppression et la modification des configurations de nœuds dans un serveur Chef central seront effectués à l'aide de cet utilitaire Knife. À l'aide de l'utilitaire Knife, les livres de recettes peuvent être téléchargés sur un serveur Chef central et des rôles, les environnements peuvent également être gérés. Fondamentalement, chaque aspect du serveur Chef central peut être contrôlé depuis Workstation à l'aide de l'utilitaire Knife.

Un référentiel Chef local: C'est l'endroit où chaque composant de configuration du serveur central de Chef est stocké. Ce référentiel Chef peut être synchronisé avec le serveur Chef central (à nouveau en utilisant l'utilitaire de couteau lui-même).

Tutoriel Chef - Chef Server

Le serveur Chef agit comme un hub pour les données de configuration. Le serveur Chef stocke les livres de recettes, les stratégies appliquées aux nœuds et les métadonnées qui décrivent chaque nœud enregistré géré par Chef-Client.

Les nœuds utilisent Chef-Client pour demander au serveur Chef des détails de configuration, tels que des recettes, des modèles et des distributions de fichiers. Le Chef-Client effectue alors autant de travail de configuration que possible sur les nœuds eux-mêmes (et non sur le serveur Chef). Un logiciel Chef Client est installé sur chaque nœud, qui extrait la configuration du serveur Chef central applicable à ce nœud. Cette approche évolutive répartit l'effort de configuration dans toute l'organisation.

Tutoriel Chef - Nœuds Chef

Les nœuds peuvent être un serveur virtuel basé sur le cloud ou un serveur physique dans votre propre centre de données, qui est géré à l'aide de Chef Server central. Le composant principal qui doit être présent sur le nœud est un agent qui établira la communication avec le serveur Chef central. Cela s'appelle Chef Client.

Chef Client exécute les fonctions suivantes:

  • Il est responsable de l'interaction avec le serveur Chef central.
  • Il gère l'enregistrement initial du nœud sur le serveur Chef central.
  • Il extrait les livres de recettes et les applique sur le nœud pour le configurer.
  • Interrogation périodique du serveur Chef central pour récupérer les nouveaux éléments de configuration, le cas échéant.

Cliquez ici pour savoir comment installer Chef Server, Workstation et Node

Tutoriel Chef - Avantages de Chef:

Ce didacticiel Chef sera incomplet si je n'inclut pas les principaux avantages de Chef:

  • Vous pouvez automatiser une infrastructure entière à l'aide de Chef. Toutes les tâches qui étaient effectuées manuellement peuvent désormais être effectuées via l'outil Chef.
  • Vous pouvez configurer des milliers de nœuds en quelques minutes à l'aide de Chef.
  • L'automatisation du chef fonctionne avec la majorité des offres de cloud public telles que .
  • Chef automatisera non seulement les choses, mais gardera également les systèmes sous contrôle cohérent et confirmera que le système est en fait configuré de la manière dont il est requis (Chef Agent / Client fait ce travail). Si quelqu'un fait une erreur en modifiant un fichier, Chef le corrigera.
  • Une infrastructure entière peut être enregistrée sous la forme d'un référentiel Chef, qui peut être utilisé comme plan pour recréer l'infrastructure à partir de zéro.

J'espère que vous avez apprécié ce tutoriel Chef jusqu'à présent, assez avec les articles théoriques! amusons-nous avec la pratique.

Tutoriel du chef | Premiers pas avec Chef | Edureka

Tutoriel du chef - Pratique

Ici, je vais vous expliquer comment créer une recette, un livre de recettes et un modèle dans Chef Workstation. Je vais également vous expliquer comment déployer un livre de recettes de Workstation vers Chef-Client (Chef Node).

J'utilise deux images virtuelles, l'une pour Chef Workstation et l'autre pour Chef Node. Pour Chef Server, j'utiliserai la version hébergée de Chef (sur le cloud). Vous pouvez également utiliser une machine physique pour Chef Server.

Étape 1: Installez Chef DK (Kit de développement) sur votre poste de travail Chef.

Chef DK est un package qui contient tous les outils de développement dont vous aurez besoin lors du codage de Chef. Voici le lien pour télécharger Chef DK .

Ici, choisissez le système d'exploitation que vous utilisez. J'utilise CentOS 6.8. Donc, je vais cliquer sur Red Hat Enterprise Linux .

Copiez le lien en fonction de la version de CentOS que vous utilisez. J'utilise CentOS 6, comme vous pouvez le voir que j'ai mis en évidence dans la capture d'écran ci-dessus.

allocation de mémoire dynamique en c ++

Accédez à votre terminal Workstation et téléchargez le Chef DK en utilisant la commande wget et collez le lien.

Exécutez ceci:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

Le package est maintenant téléchargé. Il est temps d'installer ce package en utilisant rpm.

Exécutez ceci:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK est maintenant installé sur mon poste de travail.

Étape 2: Créer une recette dans le poste de travail

Commençons par créer une recette dans le poste de travail et testons-la localement pour nous assurer qu'elle fonctionne.Créez un dossier nommé chef-repo. Nous pouvons créer nos recettes dans ce dossier.

Exécutez ceci:

mkdir chef-repo cd chef-repo

Dans ce répertoire chef-repo, je vais créer une recette nommée edureka.rb. .rb est l'extension utilisée pour ruby. J'utiliserai l'éditeur vim, vous pouvez utiliser n'importe quel autre éditeur que vous voulez comme gedit, emac, vi etc.

Exécutez ceci:

vim edureka.rb

Ajoutez ici ce qui suit:

file '/ etc / motd' content 'Welcome to Chef' fin

Ce Recipe est Dureka .rb crée un fichier nommé / etc / motd avec le contenu «Welcome to Chef».

comment trouver le plus grand nombre dans le tableau java

Maintenant, je vais utiliser cette recette pour vérifier si cela fonctionne.

Exécuter cette:

chef-appliquer edureka.rb

Il y a donc un fichier créé dans le chef-repo qui a du contenu Bienvenue chez Chef.

Étape 3: Modifier le fichier de recette pour installer le package httpd

Je modifierai la recette pour installer le package httpd sur mon poste de travail et copierai un fichier index.html à la racine du document par défaut pour confirmer l'installation. L'action par défaut pour une ressource de package est l'installation, je n'ai donc pas besoin de spécifier cette action séparément.

Exécuter cette:

vim edureka.rb

Ici, ajoutez ce qui suit:

package 'httpd' service 'httpd' faire l'action [: enable,: start] end file '/var/www/html/index.html' do content 'Bienvenue dans Apache dans Chef' end

Maintenant, je vais appliquer ces configurations en exécutant la commande ci-dessous:

Exécuter cette:

chef-appliquer edureka.rb

L'exécution de la commande décrit clairement chaque instance de la recette. Il installe le package Apache, active et démarre le service httpd sur le poste de travail. Et il crée un fichier index.html dans la racine du document par défaut avec le contenu «Bienvenue dans Apache dans Chef».

Confirmez maintenant l'installation d'Apache2 en ouvrant votre navigateur Web. Tapez votre adresse IP publique ou le nom de votre hôte. Dans mon cas, c'est localhost.

Étape 4: Nous allons maintenant créer notre premier livre de recettes.

Créez un répertoire appelé livres de recettes et exécutez la commande ci-dessous pour générer le livre de recettes.

Exécuter cette:

mkdir livres de cuisine cd livres de cuisine chef générer livre de recettes httpd_deploy

httpd_deploy est un nom donné au livre de recettes. Vous pouvez donner le nom de votre choix.

Passons à ce nouveau répertoire httpd_deploy.

Exécuter cette:

cd httpd_deploy

Voyons maintenant la structure des fichiers du livre de recettes créé.

Exécuter cette:

arbre

Étape 5: Ccréer un fichier modèle.

Auparavant, j’avais créé un fichier avec du contenu, mais qui ne pouvait pas s’adapter à mes structures de recettes et de livres de recettes. Voyons donc comment nous pouvons créer un modèle pour la page index.html.

Exécuter cette:

chef générer un modèle httpd_deploy index.html

Maintenant, si vous voyez ma structure de fichiers Cookbook, il y a un dossier créé avec les modèles de nom avec le fichier index.html.erb. Je modifierai ce fichier modèle index.html.erb et y ajouterai ma recette. Reportez-vous à l'exemple ci-dessous:

Accédez au répertoire par défaut

Exécuter cette:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Ici, modifiez le modèle index.html.erb en utilisant n'importe quel éditeur avec lequel vous êtes à l'aise. J'utiliserai l'éditeur vim.

Exécuter cette:

vim index.html.erb

Maintenant, ajoutez ce qui suit:

Bienvenue dans le déploiement de Chef Apache

Étape 6: Ccréez une recette avec ce modèle.

Allez dans le répertoire des recettes.

Exécuter t le sien:

cd / root / chef-repo / livres de cuisine / httpd_deploy / recettes

Modifiez maintenant le fichier default.rb à l'aide de l'éditeur de votre choix. J'utiliserai l'éditeur vim.

Exécuter cette:

vim default.rb

Ici, ajoutez ce qui suit:

package 'httpd' service 'httpd' faire l'action [: enable,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Je vais maintenant retourner dans mon dossier chef-repo et exécuter / tester ma recette sur mon poste de travail.

Exécuter cette:

cd / root / chef-repo chef-client --local-mode --runlist 'recette [httpd_deploy]'

Selon ma recette, Apache est installé sur mon poste de travail, le service est démarré et activé au démarrage. Un fichier modèle a également été créé à la racine de mon document par défaut.

Maintenant que j'ai testé ma station de travail. Il est temps de configurer le serveur Chef.

Étape 7: Configurer le serveur Chef

J'utiliserai la version hébergée de Chef Server sur le cloud, mais vous pouvez également utiliser une machine physique. Ce Chef-Server est présent à manage.chef.io

Par ici, créez un compte si vous n’en avez pas. Une fois que vous avez créé un compte, connectez-vous avec vos informations de connexion.

Voici à quoi ressemble Chef Server.

Si vous vous connectez pour la première fois, la toute première chose que vous allez faire est de créer une organisation. L'organisation est essentiellement un groupe de machines que vous gérerez avec Chef Server.

Tout d'abord, je vais aller dans l'onglet administration. Là-bas, j'ai déjà créé une organisation appelée edu. Je dois donc télécharger le kit de démarrage sur ma station de travail. Ce kit de démarrage vous aidera à pousser les fichiers du poste de travail vers le serveur Chef. Cliquez sur l'icône des paramètres sur le côté droit et cliquez sur Starter Kit.

Lorsque vous cliquez là-bas, vous aurez une option pour télécharger le kit de démarrage. Cliquez simplement dessus pour télécharger le fichier zip du Starter Kit.

print_r en php

Déplacez ce fichier vers votre répertoire racine.Décompressez maintenant ce fichier zip en utilisant la commande unzip dans votre terminal. Vous remarquerez qu'il inclut un répertoire appelé chef-repo.

Exécuter cette:

décompressez chef-starter.zip

Déplacez maintenant ce kit de démarrage vers le répertoire du livre de recettes dans le répertoire chef-repo.

Exécuter cette:

mv starter / root / chef-repo / livre de recettes

Les livres de cuisine du chef sont disponibles dans le Super Market Cookbook, nous pouvons aller au Chef SuperMarket. Téléchargez les livres de cuisine requis sur supermarket.chef.io . Je télécharge l'un des livres de recettes pour installer Apache à partir de là.

Exécuter e t h est:

cd chef-repo couteau livre de cuisine téléchargement du site learn_chef_httpd

Il y a Tar ball téléchargé pour le livre de cuisine Apache. Maintenant, nous devons extraire le contenu de ce fichier Tar téléchargé. Pour cela, j'utiliserai la commande tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Tous les fichiers requis sont automatiquement créés dans ce livre de recettes. Il n'est pas nécessaire d'apporter des modifications. Vérifions la description de la recette dans mon dossier de recettes.

Exécuter t h est :

cd / root / chef-repo / learn_chef_httpd / recettes cat default.rb

Maintenant, je vais simplement télécharger ce livre de cuisine sur mon serveur Chef car il me semble parfait.

Étape 8: Téléchargez le livre de recettes sur le serveur Chef.

Pour télécharger le livre de recettes Apache que j'ai téléchargé, commencez par déplacer ce fichier learn_chef_httpd dans le dossier Cookbooks du chef-repo. Puis changez votre répertoire en livres de cuisine.

Exécuter t h est :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

Passez maintenant à ce répertoire de livres de cuisine.

Exécutez ceci:

livres de cuisine cd

Maintenant, dans ce répertoire, exécutez la commande ci-dessous pour télécharger Apache Cookbooà:

Exec ute t h est:

couteau livre de cuisine télécharger learn_chef_httpd

Vérifiez le livre de recettes à partir de la console de gestion Chef Server. Dans la section politique, vous trouverez le livre de recettes que vous avez téléchargé. Reportez-vous à la capture d'écran ci-dessous:

Maintenant, notre dernière étape consiste à ajouter Chef Node. J'ai configuré un poste de travail, un serveur Chef et maintenant je dois ajouter mes clients au serveur Chef pour l'automatisation.

Étape 9: Ajout de Chef Node au serveur Chef.

À des fins de démonstration, j'utiliserai une machine CentOS comme Chef Node. Il peut y avoir des centaines de nœuds connectés à un serveur Chef. La couleur du terminal de ma machine Node est différente de celle du poste de travail afin que vous puissiez faire la différence entre les deux.

J'ai juste besoin de l'adresse IP de mon Node pour que j'exécute la commande ci-dessous dans mon Node machinest.

Exec u t est t h est:

ifconfig

J'ajouterai mon Chef Node au serveur en exécutant la commande Knife Bootstrap dans laquelle je spécifierai l'adresse IP du Chef Node et son nom. Exécutez la commande indiquée ci-dessousdans:

Exec ute t h est:

couteau bootstrap 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Cette commande initialisera également l'installation du Chef-Client dans le Chef Node. Vous pouvez le vérifier à partir de la CLI sur le poste de travail à l'aide de la commande couteau, comme indiqué ci-dessousdans:

Exec ute t h est:

Liste des nœuds de couteau

Vous pouvez également vérifier à partir du serveur Chef. Accédez à l'onglet nœuds de votre console de gestion de serveur, vous remarquerez ici que le nœud que vous avez ajouté est présent. Reportez-vous à la capture d'écran ci-dessous.

Étape 10: Gérer la liste d'exécution des nœuds

Voyons comment nous pouvons ajouter un livre de recettes au nœud et gérer sa liste d’exécutions à partir du serveur Chef. Comme vous pouvez le voir dans la capture d'écran ci-dessous, cliquez sur l'onglet Actions et sélectionnez l'option Modifier la liste d'exécution pour gérer la liste d'exécution.

Dans les recettes disponibles, vous pouvez voir notre recette learn_chef_httpd, vous pouvez la faire glisser des packages disponibles vers la liste des courses actuelle et enregistrer la liste des courses.

Connectez-vous maintenant à votre nœud et exécutez simplement chef-client pour exécuter le Run List.

Exec ute t h est:

chef-client

J'espère que vous avez apprécié ce tutoriel de Chef et appris comment Chef peut être utilisé pour configurer des centaines de nœuds. Chef joue un rôle essentiel dans de nombreuses organisations pour atteindre DevOps. Avec Chef, les organisations publient des applications plus fréquemment et reliabverre.

Si vous avez trouvé ce blog sur ' Tutoriel du chef '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, Chef, Jenkins, Nagios et GIT pour automatiser plusieurs étapes dans SDLC.