GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Chef est un outil de gestion de configuration basé sur Ruby utilisé pour définir l'infrastructure en tant que 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éées sur le poste de travail d'un utilisateur à l'aide du package Chef Workstation. Vos recettes sont distribuées sur les nœuds via un serveur Chef. Un client Chef, installé sur chaque nœud, est chargé d'appliquer la recette à son nœud correspondant. Ce guide vous montrera comment installer et configurer un serveur Chef et une station de travail Chef. Nous allons également amorcer un nœud à gérer avec Chef.

Dans ce didacticiel, vous apprendrez :

  • Installer et configurer le serveur Chef
  • Créer un utilisateur et une organisation Chef
  • Installer et configurer le poste de travail Chef
  • Configurer le couteau et démarrer un nœud client

Chef Architecture.

Configuration logicielle requise et conventions utilisées

Configuration logicielle requise et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version du logiciel utilisée
Système Ubuntu Linux 18.04
Logiciel Chef Server Core, Chef Workstation, Chef Client, Kit de développement Chef
Autre Accès privilégié à votre système Linux en tant que root ou via le sudo commande.
Conventions # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande
$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié

Installer et configurer le serveur Chef

Le serveur Chef est le centre d'interaction entre tous les postes de travail et nœuds sous la gestion de Chef. Les modifications apportées au code de configuration sur les postes de travail sont transmises au serveur Chef, puis extraites par le client chef d'un nœud pour appliquer les configurations.

Téléchargez le dernier serveur Chef en exécutant la commande ci-dessous :

# wget https://packages.chef.io/files/stable/chef-server/12.18.14/ubuntu/18.04/chef-server-core_12.18.14-1_amd64.deb

Installez maintenant le package serveur avec la commande suivante :

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

Le serveur Chef inclut un utilitaire de ligne de commande appelé chef-server-ctl. Exécutez chef-server-ctl pour démarrer les services du serveur Chef.

# chef-serveur-ctl reconfigure

Une fois la configuration réussie du serveur chef, vous verrez le message ci-dessous et vérifierez également l'état de fonctionnement du serveur chef.

Chef Client terminé, 493/1100 ressources mises à jour en 12 minutes 02 secondesChef Server reconfiguré !
root@ubuntubox1 :~# chef-server-ctl statusrun :bibliothèque :(pid 1435) 6644s ; exécuter :log :(pid 1440) 6644srun :nginx :(pid 1235) 6653s ; exécuter :log :(pid 1744) 6631srun :oc_bifrost :(pid 1196) 6657s ; run :log :(pid 1203) 6657srun :oc_id :(pid 1220) 6655s ; exécuter :log :(pid 1227) 6655srun :opscode-erchef :(pid 4376) 6432s ; run :log :(pid 1508) 6644srun :opscode-expandeur :(pid 1335) 6648s ; run :log :(pid 1431) 6646srun :opscode-solr4 :(pid 1244) 6650s ; exécuter :log :(pid 1285) 6649srun :postgresql :(pid 1176) 6659s; exécuter :log :(pid 1180) 6659srun :rabbitmq :(pid 4188) 6443s; exécuter :log :(pid 1748) 6631srun :redis_lb :(pid 27397) 6931s ; exécuter :log :(pid 1735) 6632sroot@ubuntubox1 :~#

Créer un utilisateur et une organisation Chef

Afin de lier les postes de travail et les nœuds au serveur Chef, créez un administrateur et une organisation avec les clés privées RSA associées.
Depuis le répertoire d'accueil, créez un répertoire .chef pour stocker les clés.

# mkdir .chef

Utilisez chef-server-ctl pour créer un utilisateur. Dans cet exemple, modifiez les éléments suivants en fonction de vos besoins :USER_NAME, FIRST_NAME, LAST_NAME, EMAIL et PASSWORD. Ajustez USER_NAME.pem et laissez l'extension .pem.

chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename ~/.chef/USER_NAME.pem
root@ubuntubox1:~# chef-server-ctl user-create chefadmin Chef Administrator chefadmin@@ubuntubox1.com '*******' --filename ~/.chef/chefadmin.pem

Pour afficher la liste de tous les utilisateurs de votre serveur Chef, exécutez la commande suivante :

root@ubuntubox1 :~# chef-server-ctl user-listchefadminpivotal

Créez une organisation et ajoutez l'utilisateur créé à l'étape précédente. Remplacez ORG_NAME par un identifiant court pour l'organisation, ORG_FULL_NAME par le nom complet de l'organisation, USER_NAME par le nom d'utilisateur créé à l'étape ci-dessus et ORG_NAME.pem par 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-create chef-on-ubuntu "Infrastructure Chef sur Ubuntu 18.04" --association_user chefadmin --filename ~/.chef/chef-on-ubuntu.pem 

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

root@ubuntubox1 :~# chef-server-ctl org-listchef-on-ubuntu

Une fois le serveur Chef installé et les clés RSA générées, nous allons commencer à configurer le poste de travail Chef. Le poste de travail est l'endroit où toutes les configurations principales seront créées pour vos nœuds.

Installer et configurer le poste de travail Chef

Le poste de travail Chef est l'endroit où vous créez et configurez toutes les recettes, livres de recettes, attributs et autres modifications nécessaires pour gérer vos nœuds. Bien qu'il puisse s'agir d'une machine locale exécutant n'importe quel système d'exploitation, il est avantageux de conserver un serveur distant comme poste de travail afin que vous puissiez y accéder de n'importe où.

Dans cette section, vous allez télécharger et installer le package Chef Workstation, qui fournit tous les outils également inclus avec ChefDK, le kit de développement de Chef.

Téléchargez la dernière version de Chef Workstation :

root@ubuntubox2 :~# wget https://packages.chef.io/files/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/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.debRésoudre packages.chef.io ( packages.chef.io)... 151.101.142.110Connexion à packages.chef.io (packages.chef.io)|151.101.142.110|:443... connecté.Demande HTTP envoyée, en attente de réponse... 200 OKLongueur :129713682 (124M) [application/x-debian-package]Enregistrement dans :'chef-workstation_0.2.43-1_amd64.deb'chef-workstation_0.2.43-1_amd64.deb 100 %[===================================================================================>] 123.70M 1.51MB/s en 80s2019-06-03 13:37:17 (1.55 MB/s) - 'chef-workstation_0.2.43-1_amd64.deb' enregistré [129713682/129713682]

Installer Chef Workstation :

root@ubuntubox2 :~# dpkg -i chef-workstation_*.debSélection du paquet chef-workstation précédemment désélectionné.(Lecture de la base de données... 117468 fichiers et répertoires actuellement installés.)Préparation du décompactage de chef-workstation_0.2.43-1_amd64. deb ...Déballage de chef-workstation (0.2.43-1) ...Configuration de chef-workstation (0.2.43-1) ...Pour exécuter l'application expérimentale Chef Workstation, utilisez le gestionnaire de packages de votre plate-forme pour installer ces dépendances :libgconf-2.so.4 => not foundVous pouvez ensuite lancer l'application en exécutant 'chef-workstation-app'.L'application sera alors disponible dans la barre d'état système.Merci d'avoir installé Chef Workstation !Vous pouvez trouver quelques conseils sur pour commencer sur https://chef.sh/

Nous devons maintenant créer le référentiel Chef. Le répertoire chef-repo stockera vos livres de cuisine Chef et d'autres fichiers associés.

#chef génère le dépôt chef-repo

Créez un sous-répertoire .chef. Le sous-répertoire .chef stockera le fichier de configuration Knife et les fichiers .pem utilisés pour l'authentification de la paire de clés RSA avec le serveur Chef. Déplacez-vous dans le répertoire chef-repo :

root@ubuntubox2 :~# mkdir ~/chef-repo/.chefroot@ubuntubox2 :~# cd chef-reporoot@ubuntubox2 :~/chef-repo#

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

Nous allons générer une paire de clés RSA sur le serveur du poste de travail. Cette paire de clés sera utilisée pour accéder au serveur Chef puis transférer leurs fichiers .pem :

root@ubuntubox2 :~# ssh-keygen -b 4096Génération d'une 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'. Saisir la phrase secrète (vide s'il n'y a pas de phrase secrète) :Saisir à nouveau la même phrase secrète :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 digitale de la clé est :SHA256 :sR+Nloq6vsc7rX4ZmMInP3SKdk4fYEJH1iLoKNm1YMg [email protected]'image aléatoire de la clé est :+---[RSA 4096]----+|.. . o. ||.E+ oo. . || * o.o... ||+ o... o + ||. .. ooS =. || +o=oo+ . || Oo+oo. || ooO.+. || o=B=*. |+----[SHA256]-----+root@ubuntubox2 :~#

Chargez la clé publique du nœud du poste de travail sur le nœud du serveur Chef.

root@ubuntubox2 :~# ssh-copy-id [email protected]/usr/bin/ssh-copy-id :INFO :Source de la ou des clés à installer :"/root/.ssh/id_rsa .pub"/usr/bin/ssh-copy-id : INFO :tentative de connexion avec la ou les nouvelles clés, pour filtrer celles qui sont déjà installées/usr/bin/ssh-copy-id : INFO : 1 clé(s) reste(nt) à installer -- si vous êtes invité maintenant, c'est d'installer le nouveau [email protected]'s password:Number of key(s) added:1Maintenant, essayez de vous connecter à la machine, avec :"ssh 'root@ ubuntubox1.com'" et vérifiez que seules les clés que vous vouliez ont été ajoutées.root@ubuntubox2 :~#

Copiez les fichiers .pem de votre serveur Chef vers votre poste de travail à l'aide de la commande scp.

root@ubuntubox2:~# scp [email protected]:~/.chef/*.pem ~/chef-repo/.chef/chefadmin.pem 100% 1674 27.9KB/s 00:00chef-on-ubuntu .pem 100% 1674 496.8KB/s 00:00

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

root@ubuntubox2 :~# ls ~/chef-repo/.chefchefadmin.pem chef-on-ubuntu.pem

Générez un nouveau livre de cuisine Chef :

root@ubuntubox2:~# chef generate cookbook chef-first-cookbookLes traits d'union 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. prêt. Tapez `cd chef-first-cookbook` pour y entrer.Vous pouvez exécuter plusieurs commandes pour commencer à développer et tester localement votre livre de cuisine.Tapez `delivery local --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 à :test/integration/default/default_test.rbSi vous préférez plonger directement, la recette par défaut peut être trouvée à :recipes/default.rb

Générez le chef-repo et déplacez-vous dans le répertoire nouvellement créé :

# chef génère l'application chef-repo# cd chef-repo

Configurer le couteau et démarrer un nœud client

Créez un fichier de configuration de couteau en accédant au répertoire ~/chef-repo/.chef et en créant un fichier nommé config.rb à l'aide de votre éditeur de texte préféré.

Copiez la configuration suivante dans le fichier config.rb :


current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                'node_name'
client_key               "USER.pem"
validation_client_name   'ORG_NAME-validator'
validation_key           "ORGANIZATION-validator.pem"
chef_server_url          'https://ubuntubox1.com/organizations/ORG_NAME'
cache_type               'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path            ["#{current_dir}/../cookbooks"]
 

La valeur de node_name doit être le nom d'utilisateur qui a été créé sur le serveur Chef.
Changez USER.pem sous client_key pour refléter le fichier .pem pour l'utilisateur chef.
Le validation_client_name doit être le ORG_NAME de l'organisation suivi de - validator.
ORGANIZATION-validator.pem dans le chemin validation_key doit être défini sur ORG_NAME suivi de -validator.pem.
Enfin, chef_server_url doit être le domaine du serveur Chef avec /organizations/ORG_NAME ajouté. Assurez-vous de remplacer ORG_NAME par le nom de l'organisation.

Déplacez-vous vers le répertoire chef-repo et copiez les certificats SSL nécessaires à partir du serveur :

root@ubuntubox2:~/chef-repo/.chef# cd ..root@ubuntubox2:~/chef-repo# knife ssl fetchATTENTION :Les certificats de ubuntubox1.com seront récupérés et placés dans votre répertoire de confiance (/root/ chef-repo/.chef/trusted_certs).Knife n'a aucun moyen de vérifier qu'il s'agit des bons certificats. Vous devez vérifier l'authenticité de ces certificats après le téléchargement.Ajout d'un certificat pour ubuntubox1_com dans /root/chef-repo/.chef/trusted_certs/ubuntubox1_com.crt

Confirmez que config.rb est configuré correctement en exécutant la liste des clients. Cette commande doit afficher le nom du validateur.

root@ubuntubox2 :~/chef-repo# liste de clients couteauchef-on-ubuntu-validator

L'amorçage d'un nœud installe le client Chef sur le nœud et valide le nœud. Cela permet au nœud de lire à partir du serveur Chef et d'extraire et d'appliquer toutes les mises à jour de configuration nécessaires détectées par le chef-client.
Depuis le poste de travail, accédez au répertoire ~/chef-repo/.chef :

# cd ~/chef-repo/.chef

Amorcez le nœud client en utilisant soit l'utilisateur racine du nœud client, soit un utilisateur avec des privilèges élevés :

root@ubuntubox2:~/chef-repo/.chef# knife bootstrap ubuntubox3.com -x root -P ******* --node-name chef-client-nodeCréation d'un nouveau client pour chef-client- nodeCréation d'un nouveau nœud pour chef-client-nodeConnexion à ubuntubox3.comubuntubox3.com -----> Installation de Chef Omnibus (-v 14)ubuntubox3.com en téléchargeant https://omnitruck-direct.chef.io/chef/install.shubuntubox3 .com vers le fichier /tmp/install.sh.2019/install.shubuntubox3.com essayant wget...ubuntubox3.com ubuntu 18.04 x86_64ubuntubox3.com Obtenir des informations pour chef stable 14 pour ubuntu...ubuntubox3.com téléchargement https:// omnitruck-direct.chef.io/stable/chef/metadata?v=14&p=ubuntu&pv=18.04&m=x86_64ubuntubox3.com vers le fichier /tmp/install.sh.2023/metadata.txtubuntubox3.com essayant wget...ubuntubox3.com SHA1 ed9b1fcdaf947d9a3d60e6d196308183a082bcffubuntubox3.com SHA256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708fubuntubox3.com url https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64. debuntubox3.com version 14.13.11ubuntubox3.com le fichier de métadonnées téléchargé semble valide... ubuntubox3.com téléchargement https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64 .debubuntubox3.com vers le fichier /tmp/install.sh.2023/chef_14.13.11-1_amd64.debuntubox3.com essayant wget...ubuntubox3.com Comparaison de la somme de contrôle avec sha256sum...ubuntubox3.com Installation du chef 14ubuntubox3.com installation avec dpkg ...ubuntubox3.com Sélection du package chef précédemment désélectionné.(Lecture de la base de données ... 117468 fichiers et répertoires actuellement installés.)ubuntubox3.com Préparation de la décompression .../chef_14.13.11-1_amd64.deb ...ubuntubox3.com Décompression chef (14.13.11-1) ...ubuntubox3.com Configuration de chef (14.13.11-1) ...ubuntubox3.com Merci d'avoir installé Chef Infra Client ! Pour obtenir de l'aide pour démarrer, visitez https://learn.chef.ioubuntubox3.com Démarrage de la première exécution de Chef Client...ubuntubox3.com Démarrage de Chef Client, version 14.13.11ubuntubox3.com résolution des livres de recettes pour la liste d'exécution :Cookbooks:ubuntubox3.com Installing Cookbook Gems:ubuntubox3.com Compiling Cookbooks...ubuntubox3.com [2019-06-03T14:01:44+04:00] AVERTISSEMENT :le nœud chef-client-node a une liste d'exécution vide.ubuntubox3 .com Converging 0 resourcesubuntubox3.comubuntubox3.com Running handlers:ubuntubox3.com Running handlers completeubuntubox3.com Chef Client terminé, 0/0 ressources mises à jour en 05 secondesConfirmez que le nœud a été amorcé en listant les nœuds clients :root@ubuntubox2:~/ chef-dépôt/.chef# 

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

root@ubuntubox2 :~/chef-repo/.chef# liste de nœuds de couteauchef-client-noderoot@ubuntubox2 :~/chef-repo/.chef# nœud de couteau afficher chef-client-nodeNode Nom :chef-client-nodeEnvironment :_defaultFQDN :ubuntubox3.comIP :192.168.1.107Run List:Roles:Recipes:Platform :ubuntu 18.04Tags :

Conclusion

Dans cet article détaillé, nous avons découvert l'outil Chef Configuration Management avec sa compréhension de base et une vue d'ensemble de ses composants avec les paramètres d'installation et de configuration. Vous pouvez en savoir plus sur Chef en visitant le site Web de Chef, c'est-à-dire https://www.chef.io/


Ubuntu
  1. Comment installer le serveur et le client NTP sur Ubuntu 18.04 LTS

  2. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  3. Comment installer le client et le serveur NFS sur Ubuntu 20.04

  4. Installer UrBackup Server et Client sur Ubuntu 20.04 - Comment faire ?

  5. Installer le serveur vnc et le client sur Ubuntu

Comment installer et exécuter Lynis sur Ubuntu Linux

Comment installer le serveur et le client NFS sur Ubuntu

Comment installer le serveur et le client NTP sur Ubuntu

Comment installer le serveur et le client UrBackup sur Ubuntu 20.04

Comment installer le serveur et le client Telnet sur Ubuntu

Comment installer le serveur NTP et le ou les clients sur Ubuntu 20.04 LTS