Comment installer Chef Server, Workstation and Chef Client sur Ubuntu 18.04

Comment installer Chef Server, Workstation and Chef Client sur Ubuntu 18.04

Le chef est un outil de gestion de la configuration basé sur Ruby utilisé pour définir l'infrastructure comme code. Cela permet aux utilisateurs d'automatiser la gestion de nombreux nœuds et de maintenir la cohérence entre ces nœuds. Les recettes déclarent l'état souhaité pour les nœuds gérés et sont créés sur le poste de travail d'un utilisateur à l'aide du package de poste de travail Chef. Vos recettes sont distribuées sur les nœuds via un serveur de chef. Un client de chef, installé sur chaque nœud, est chargé de l'application de la recette à son nœud correspondant. Ce guide vous montrera comment installer et configurer un serveur de chef et une station de travail du chef. Nous allons également bootstrap un nœud à gérer avec le chef.

Dans ce tutoriel, vous apprendrez:

  • Installer et configurer le serveur de chef
  • Créer un utilisateur et une organisation du chef
  • Installez et configurez la station de travail Chef
  • Configurer le couteau et l'amorçage d'un nœud client

Architecture de chef.

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Ubuntu Linux 18.04
Logiciel Chef Server Core, Chef Workstation, chef Client, Kit de développement du chef
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Installer et configurer le serveur de chef

Le serveur du chef est le centre d'interaction entre toutes les postes de travail et les nœuds sous la direction du chef. Les modifications apportées au code de configuration sur les postes de travail sont poussées vers le serveur du chef, puis tirées par le chef-client d'un nœud pour appliquer les configurations.

Téléchargez le dernier serveur de chef via l'exécution de la commande ci-dessous:

# wget https: // packages.chef.IO / Fichiers / stable / Chef-Server / 12.18.14 / Ubuntu / 18.04 / Chef-Server-core_12.18.14-1_AMD64.deb 


Installez maintenant le package du serveur par la commande suivante:

# dpkg -i chef-serveur-core_ *.deb 

Le serveur du chef comprend un utilitaire de ligne de commande appelée Chef-Server-CTL. Exécutez Chef-Server-CTL pour démarrer les services du serveur Chef.

# chef-serveur-CTL reconfigure 

Lors de la configuration réussie du serveur de chef, vous verrez le message ci-dessous et vérifiez également l'état d'exécution du serveur du chef.

Client du chef Fini! 
root @ ubuntubox1: ~ # Chef-Server-CTL Status Run: Libred: (PID 1435) 6644S; Exécuter: Journal: (PID 1440) 6644S Exécution: Nginx: (PID 1235) 6653S; Exécuter: Log: (PID 1744) 6631S Run: OC_BIFROST: (PID 1196) 6657S; Exécuter: journal: (PID 1203) 6657 Run: OC_ID: (PID 1220) 6655S; Exécuter: journal: (PID 1227) 6655S RUN: OPSCODE-ERCHEF: (PID 4376) 6432S; Exécuter: journal: (PID 1508) 6644S Run: OPScode-Expander: (PID 1335) 6648S; Exécuter: Journal: (PID 1431) 6646S RUN: OPSCODE-SOLR4: (PID 1244) 6650S; Exécuter: Journal: (PID 1285) 6649S Exécution: PostgreSQL: (PID 1176) 6659S; Exécuter: Journal: (PID 1180) 6659S Run: RabbitMQ: (PID 4188) 6443S; Exécuter: Log: (PID 1748) 6631S Run: redis_lb: (PID 27397) 6931S; Exécuter: journal: (pid 1735) 6632s root @ ubuntubox1: ~ # 

Créer un utilisateur et une organisation du chef

Afin de relier les postes de travail et les nœuds au serveur du chef, créez un administrateur et une organisation avec des clés privées RSA associées.
À partir du répertoire domestique, créez un .Répertoire du chef pour stocker les clés.

# mkdir .chef 

Utilisez Chef-Server-CTL pour créer un utilisateur. Dans cet exemple, modifiez ce qui suit pour répondre à vos besoins: user_name, first_name, last_name, e-mail et mot de passe. Ajuster user_name.pem, et quitte le .extension PEM.

Chef-Server-CTL User-créate user_name first_name last_name e-mail 'mot de passe' --filename ~ /.chef / user_name.pem
root @ ubuntubox1: ~ # Chef-Server-CTL User-création chef chef chef chef Chefadmin @@ ubuntubox1.com '*******' - FileName ~ /.chef / chef.pem 

Pour afficher la liste de tous les utilisateurs de votre serveur de chef publie la commande suivante:

root @ ubuntubox1: ~ # Chef-Server-CTL User-list Chefadmin Pivotal 

Créer une organisation et ajouter l'utilisateur créé à l'étape précédente. Remplacez org_name par un court identifiant pour l'organisation, org_full_name par le nom complet des organisations, user_name avec le nom d'utilisateur créé à l'étape ci-dessus et org_name.PEM avec l'identifiant court de l'organisation suivi de .pem.

Chef-Server-CTL ORG-CREATE ORG_NAME "ORG_FULL_NAME" --association_User User_name --FileName ~ /.chef / org_name.pem
root @ ubuntubox1: ~ # Chef-Server-CTL Org-créate chef-sur-UBUNTU "CHEF Infrastructure sur Ubuntu 18.04 "- Association_User Chefadmin - FileName ~ /.chef / chef-sur-Ubuntu.pem 


Pour afficher la liste de toutes les organisations de votre serveur de chef, utilisez la commande suivante:

root @ ubuntubox1: ~ # chef-server-cotl org-list chef-on-ubuntu 

Avec le serveur du chef installé et les touches RSA générées, nous commencerons à configurer la station de travail Chef. La station de travail est l'endroit où toutes les principales configurations seront créées pour vos nœuds.

Installez et configurez la station de travail Chef

La station de travail du chef est l'endroit où vous créez et configurez toutes les recettes, livres de cuisine, attributs et autres modifications nécessaires pour gérer vos nœuds. Bien que cela puisse être une machine locale exécutant n'importe quel système d'exploitation, il y a un avantage à garder un serveur distant comme poste de travail afin que vous puissiez y accéder de n'importe où.

Dans cette section, vous téléchargerez et installerez le package de poste de travail Chef, qui fournit tous les outils également inclus avec le chef Chefdk, le kit de développement du chef.

Téléchargez la dernière station de travail du chef:

root @ ubuntubox2: ~ # wget https: // packages.chef.IO / Fichiers / Stable / Chef-Workstation / 0.2.43 / Ubuntu / 18.04 / Chef-WorkStation_0.2.43-1_amd64.Deb --2019-06-03 13: 35: 51-- https: // packages.chef.IO / Fichiers / Stable / Chef-Workstation / 0.2.43 / Ubuntu / 18.04 / Chef-WorkStation_0.2.43-1_amd64.packages de résolution DEB.chef.IO (packages.chef.io)… 151.101.142.110 Connexion aux packages.chef.IO (packages.chef.io) | 151.101.142.110 |: 443… connecté. Demande HTTP envoyée, en attente de réponse… 200 OK Longueur: 129713682 (124m) [Application / X-Debian-Package] Saving vers: 'Chef-WorkStation_0.2.43-1_amd64.Deb 'Chef-WorkStation_0.2.43-1_amd64.Deb 100% [============================================================================. =====================================>] 123.70m 1.51 Mo / s dans les années 80 2019-06-03 13:37:17 (1.55 MB / s) - 'Chef-WorkStation_0.2.43-1_amd64.Deb 'Sauvé [129713682/129713682] 

Installer le chef de travail du chef:

root @ ubuntubox2: ~ # dpkg -i chef-workStation_ *.DEB Sélection du package précédemment non sélectionné Chef-Workstation. (Base de données de lecture… 117468 Fichiers et répertoires actuellement installés.) Se préparer à déballer Chef-WorkStation_0.2.43-1_amd64.Deb… Déballage du chef-travail (0.2.43-1)… Configuration du chef-travail (0.2.43-1)… Pour exécuter l'application expérimentale de la station de travail Chef, utilisez le gestionnaire de packages de votre plateforme pour installer ces dépendances: libgconf-2.donc.4 => Non trouvé, vous pouvez ensuite lancer l'application en exécutant «Chef-Workstation-App». L'application sera ensuite disponible dans le plateau système. Merci d'avoir installé Chef Workstation! Vous pouvez trouver quelques conseils pour commencer à https: // chef.sh / 

Maintenant, nous devons créer le référentiel du chef. Le répertoire Chef-Repo stockera vos livres de cuisine de chef et autres fichiers connexes.

# chef génère Repo Chef-Repo 

Créer un .sous-répertoire du chef. Le .Le sous-répertoire du chef stockera le fichier de configuration du couteau et le .Fichiers PEM utilisés pour l'authentification de la paire de clés RSA avec le serveur du chef. Déplacez-vous dans le répertoire Chef-Repo:

root @ ubuntubox2: ~ # mkdir ~ / chef-repo /.chef root @ ubuntubox2: ~ # CD chef-repo root @ ubuntubox2: ~ / chef-repo # 


L'authentification entre le serveur du chef et le poste de travail et / ou les nœuds est complétée par le cryptage de la clé publique. Cela garantit que le serveur de chef ne communique qu'avec des machines de confiance. Dans cette section, les clés privées RSA, générées lors de la configuration du serveur du chef, seront copiées sur la station de travail pour permettre la communication entre le serveur du chef et la station de travail.

Nous générerons une paire de clés RSA sur le serveur de poste de travail. Cette paire de clés sera utilisée pour accéder au serveur du chef, puis transférer leur .Fichiers PEM:

root @ ubuntubox2: ~ # ssh-keygen -b 4096 Génération de paire de clés RSA publique / privée. Entrez le fichier dans lequel enregistrer la clé (/ root /.ssh / id_rsa): répertoire créé '/ root /.ssh '. Entrez la phrase de passe (vide pour aucune phrase de passe): entrez à nouveau la même phrase de passe: votre identification a été enregistrée dans / root /.ssh / id_rsa. Votre clé publique a été enregistrée dans / root /.ssh / id_rsa.pub. L'empreinte clé est: sha256: sr + nloq6vsc7rx4zmminp3skdk4fyejh1iloknm1ymg root @ ubuntubox2.com L'image Randart de la clé est: + --- [RSA 4096] ---- + |… o. | |.E + oo… | | * o.O… | | + o… o + | |… Oos = . | | + o = oo+ . | | Oo + oo. | | ooo.+. | | o = b = *. | + ---- [Sha256] ----- + root @ ubuntubox2: ~ # 

Téléchargez la clé publique du nœud de travail de travail vers le nœud du serveur du chef.

root @ ubuntubox2: ~ # ssh-copy-id root @ ubuntubox1.com / usr / bin / ssh-copy-id: info: source de clés à installer: "/ root /.ssh / id_rsa.pub "/ usr / bin / ssh-copy-id: info: tentative de se connecter avec la ou les nouvelles touches, pour filtrer celle qui est déjà installée / usr / bin / ssh-copy-id: info: 1 clé (s) Restez à installer - Si vous êtes invité maintenant, il doit installer les nouvelles clés root @ ubuntubox1.Mot de passe du com: Nombre de clés ajoutés: 1 maintenant essayez de vous connecter à la machine, avec: "ssh 'root @ ubuntubox1.com '"et vérifier pour vous assurer que seules les touches que vous vouliez ont été ajoutées. root @ ubuntubox2: ~ # 

Copier le .Fichiers PEM de votre serveur de chef à votre poste de travail à l'aide de la commande SCP.

root @ ubuntubox2: ~ # SCP root @ ubuntubox1.com: ~ /.chef/*.pem ~ / chef-repo /.chef / chef.pem 100% 1674 27.9kb / s 00:00 chef-on-Ubuntu.PEM 100% 1674 496.8KB / s 00:00 

Confirmez que les fichiers ont été copiés avec succès en répertoriant le contenu du .répertoire du chef. Le .Les fichiers PEM doivent être répertoriés.

root @ ubuntubox2: ~ # ls ~ / chef-repo /.chef chef.PEM Chef-on-Ubuntu.pem 


Générer un nouveau livre de cuisine de chef:

root @ ubuntubox2: ~ # chef Générer le livre de cuisine Le chef-premier-Cookbook les traits d'accès sont découragés dans les noms de livres de cuisine car ils peuvent causer des problèmes avec les ressources personnalisées. Voir https: // docs.chef.io / ctl_chef.HTML # Chef-Generate-Cookbook pour plus d'informations. Génération du livre de cuisine Chef-First-Cookbook - Assurer le contenu de fichier de livre de cuisine correct - Assurer la configuration de la livraison - Assurer le contenu de livre de cuisine de livraison correcte Votre livre de cuisine est prêt. Tapez 'CD Chef-First-Cookbook' pour y entrer. Il existe plusieurs commandes que vous pouvez exécuter pour commencer à développer localement et à tester votre livre de cuisine. Tapez «livraison locale - help» pour voir une liste complète. Pourquoi ne pas commencer par écrire un test? Les tests pour la recette par défaut sont stockés sur: test / intégration / par défaut / default_test.RB Si vous préférez plonger directement, la recette par défaut peut être trouvée à: Recettes / par défaut.RB 

Générez le chef-repo et emménagez dans le répertoire nouvellement créé:

# Chef Générer l'application Chef-Repo # CD Chef-Repo 

Configurer le couteau et l'amorçage d'un nœud client

Créez un fichier de configuration de couteau en naviguant vers ~ / Chef-Repo /.répertoire du chef et création d'un fichier nommé configuration.RB en utilisant votre éditeur de texte préféré.

Copiez la configuration suivante dans la configuration.Fichier RB:

 current_dir = fichier.dirname (__ file__) log_level: info log_location stdout node_name 'node_name' client_key ".pem "validation_client_name 'org_name-validator' validation_key" organisation-validator.pem "Chef_server_url 'https: // ubuntubox1.com / organisations / org_name 'cache_type' basicFile 'cache_options (: path => "# env [' home '] /.Chef / Somme de contrôle ") Cookbook_path [" # Current_Dir /… / Cookbooks "] 
Copie

La valeur pour node_name devrait être le nom d'utilisateur qui a été créé sur le serveur du chef.
Changer d'utilisateur.pem sous client_key pour refléter le .Fichier PEM pour l'utilisateur du chef.
La validation_client_name doit être l'organisation de l'organisation suivie de -validator.
Validateur organisation.PEM dans le chemin Validation_Key doit être défini sur le nom de l'organisation suivi de -validator.pem.
Enfin, le chef_server_url devrait être le domaine du serveur du chef avec / organisations / org_name annexé. Assurez-vous de remplacer org_name par le nom de l'organisation.

Passez au répertoire Chef-Repo et copiez les certificats SSL nécessaires à partir du serveur:

root @ ubuntubox2: ~ / chef-repo /.Chef # CD… root @ ubuntubox2: ~ / chef-repo # couteau ssl avertissement: certificats d'Ubuntubox1.com sera récupéré et placé dans votre répertoire TrustEd_CERT (/ root / chef-repo /.Chef / TRUSTED_CERTS). Le couteau n'a aucun moyen de vérifier que ce sont les bons certificats. Vous devez vérifier l'authenticité de ces certificats après le téléchargement. Ajout de certificat pour ubuntubox1_com dans / root / chef-repo /.Chef / TRUSTED_CERTS / UBUNTUBOX1_COM.CRT 


Confirmez cette configuration.RB est configuré correctement en exécutant la liste des clients. Cette commande doit sortir le nom du validateur.

root @ ubuntubox2: ~ / chef-repo # Liste des clients de couteau Chef-on-Ubuntu-validator 

Bootstrap un nœud installe le client du chef sur le nœud et valide le nœud. Cela permet au nœud de lire à partir du serveur du chef et de se débarrasser et d'appliquer toutes les mises à jour de configuration nécessaires détectées par le chef-client.
À partir de la station de travail, accédez à ~ / chef-repo /.Répertoire du chef:

# CD ~ / Chef-Repo /.chef 

Bootstrap le nœud client à l'aide de l'utilisateur racine du nœud client, soit un utilisateur avec des privilèges élevés:

root @ ubuntubox2: ~ / chef-repo /.chef # couteau bootstrap ubuntubox3.com -x root -p ******* --node-name chef-client-node créant un nouveau client pour le chef-client-node créant un nouveau nœud pour le nœud de chef-clien.com ubuntubox3.com -----> Installation du chef omnibus (-v 14) Ubuntubox3.com téléchargement https: // omnitruck-direct.chef.IO / Chef / Installer.sh ubuntubox3.com pour fichier / tmp / installer.shot.2019 / Installer.sh ubuntubox3.com essayant wget… ubuntubox3.com ubuntu 18.04 x86_64 Ubuntubox3.com obtenant des informations pour le chef stable 14 pour Ubuntu… Ubuntubox3.com téléchargement https: // omnitruck-direct.chef.IO / stable / chef / métadonnées?v = 14 & p = ubuntu & pv = 18.04 & m = x86_64 Ubuntubox3.com pour fichier / tmp / installer.shot.2023 / métadonnées.txt ubuntubox3.com essayant wget… ubuntubox3.com sha1 ed9b1fcdaf947d9a3d60e6d196308183a082bcff ubuntubox3.com sha256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708f ubuntubox3.com URL https: // packages.chef.IO / Fichiers / Stable / Chef / 14.13.11 / Ubuntu / 18.04 / Chef_14.13.11-1_AMD64.deb ubuntubox3.com version 14.13.11 Ubuntubox3.com Le fichier de métadonnées téléchargées semble valable… Ubuntubox3.com téléchargement https: // packages.chef.IO / Fichiers / Stable / Chef / 14.13.11 / Ubuntu / 18.04 / Chef_14.13.11-1_AMD64.deb ubuntubox3.com pour fichier / tmp / installer.shot.2023 / Chef_14.13.11-1_AMD64.deb ubuntubox3.com essayant wget… ubuntubox3.com Comparant la somme de contrôle avec Sha256Sum… Ubuntubox3.com Installation du chef 14 Ubuntubox3.com installation avec dpkg… ubuntubox3.com Sélection de chef de package précédemment non sélectionné. (Base de données de lecture… 117468 Fichiers et répertoires actuellement installés.) ubuntubox3.com se préparant à déballer… / chef_14.13.11-1_AMD64.Deb… Ubuntubox3.com Déballage Chef (14.13.11-1)… Ubuntubox3.com Installation de chef (14.13.11-1)… Ubuntubox3.com merci d'avoir installé le chef infra client! Pour aider à commencer, visitez https: // apprenez.chef.io ubuntubox3.com Démarrage du premier chef Client Run… Ubuntubox3.com Démarrage du Client du chef, version 14.13.11 Ubuntubox3.com Résolution de livres de cuisine pour la liste des courses: [] Ubuntubox3.com synchronisant des livres de cuisine: ubuntubox3.com Installation de Cookbook Gems: Ubuntubox3.com Compilant des livres de cuisine… Ubuntubox3.com [2019-06-03T14: 01: 44 + 04: 00] Warn: Node Chef-Client-Node a une liste d'exécution vide. ubuntubox3.com convergent 0 ressources ubuntubox3.com ubuntubox3.com Running Handlers: Ubuntubox3.com Running Handlers complète Ubuntubox3.com chef client terminé, 0/0 Ressources mise à jour en 05 secondes confirmez que le nœud a été amorcé en répertoriant les nœuds clients: root @ ubuntubox2: ~ / chef-repo /.chef# 

Confirmez que le nœud a été botté avec succès en répertoriant les nœuds:

root @ ubuntubox2: ~ / chef-repo /.chef # nœud de couteau Liste du chef-clien-node root @ ubuntubox2: ~ / chef-repo /.Chef # Node de couteau Show Nom du nœud de nœud à nœuds de chef: Environnement de nœud de chef: _default FQDN: Ubuntubox3.com ip: 192.168.1.107 Liste des courses: Rôles: Recettes: plate-forme: Ubuntu 18.04 Tags: 

Conclusion

Dans cet article détaillé, nous avons appris sur l'outil de gestion de la configuration du chef avec sa compréhension de base et son aperçu de ses composants avec des paramètres d'installation et de configuration. Vous pouvez en savoir plus sur Chef en visitant le site Web du chef I.e. https: // www.chef.io /

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Masterring Bash Script Loops
  • Boucles imbriquées dans les scripts bash
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Choses à installer sur Ubuntu 22.04
  • À quelle fréquence devez-vous redémarrer votre serveur Linux?
  • Ubuntu 20.04 Guide