Chef est un puissant utilitaire de gestion de configuration qui transforme l'infrastructure en code. Avec Chef, les utilisateurs peuvent facilement gérer, configurer et déployer les ressources sur le réseau à partir de l'emplacement centralisé, quel que soit l'environnement (cloud, sur site ou hybride). Cet article vous aidera à configurer un chef 12 sur CentOS 7 / RHEL 7
À partir de la version du serveur Chef 11, le frontal du serveur Chef est écrit en Erlang et le client utilise Ruby pour gérer les modifications de configuration.
Composants de Chef :
Chef est composé d'un serveur Chef, d'un ou plusieurs postes de travail et d'un nœud où le chef-client est installé. Le nom des composants est basé sur les rôles joués par chaque machine dans l'écosystème Chef.
Chef Serveur :Il s'agit du serveur concentrateur central qui stocke les livres de cuisine et les recettes téléchargées à partir des postes de travail, auquel le chef-client accède ensuite pour le déploiement de la configuration.
Postes de travail de chef :C'est ici que les recettes, les livres de cuisine et d'autres détails de configuration du chef sont créés ou modifiés. Tous ces éléments sont ensuite poussés vers le serveur Chef à partir du poste de travail, où ils seront disponibles pour être déployés sur les nœuds chef-client.
Chef Client :Il s'agit du nœud cible où sont déployées les configurations dans lesquelles le chef-client est installé. Un nœud peut être n'importe quelle machine (physique, virtuelle, cloud, périphérique réseau, etc.)
Configurer un Chef 12 sur CentOS 7 :
Configuration requise / Environnement :
Assurez-vous que votre système répond aux exigences de ressources suivantes. Ici, j'utiliserai CentOS 7 comme système d'exploitation de base pour l'installation de Chef.
NOM D'HÔTE | ADRESSE IP | SE | CPU | MÉMOIRE | DISQUE | OBJECTIF |
---|---|---|---|---|---|---|
chefserver.itzgeek.local | 192.168.12.11 | CentOS 7 | 4 | 4 Go | 40 Go | Chef serveur |
chefdk.itzgeek.local | 192.168.12.12 | CentOS 7 | 1 | 512 Mo | NA | Station de travail Chef (Kit de développement Chef) |
chefclient.itzgeek.local | 192.168.12.20 | CentOS 7 | 1 | 512 Mo | NA | Chef Client |
Prérequis :
L'hôte doit avoir un nom de domaine complet.
Doit avoir une entrée DNS ou hôte en place.
vi /etc/hosts 192.168.12.11 chefserver.itzgeek.local chefserver 192.168.12.12 chefdk.itzgeek.local chefdk 192.168.12.20 chefclient.itzgeek.local chefclient
Installez le paquet wget.
yum -y install wget
Chef serveur :
Le serveur Chef agit comme un hub central pour les données de configuration. Le serveur stocke les livres de recettes, les politiques appliquées aux nœuds et les métadonnées liées à un nœud enregistré. Le nœud enregistré utilise le client chef pour demander au serveur chef des détails de configuration, tels que des recettes, des modèles et la distribution de fichiers.
Installer et configurer le serveur Chef :
Téléchargez la dernière version du noyau du serveur Chef (12.10 au moment de la rédaction).
wget https://packages.chef.io/stable/el/7/chef-server-core-12.10.0-1.el7.x86_64.rpm
Une fois le téléchargement terminé, installez le noyau du serveur chef à l'aide de la commande suivante.
rpm -ivh chef-server-core-*.rpm
Si votre système de serveur chef ne répond pas à la configuration matérielle recommandée, cette étape peut échouer.
Une fois l'installation terminée, vous devez reconfigurer les composants du serveur chef pour que le serveur fonctionne ensemble. La reconfiguration peut prendre un peu plus de temps .
chef-server-ctl reconfigure
Vérifiez l'état des composants de Chef Server à l'aide de la commande suivante.
chef-server-ctl status
Sortie :
run: bookshelf: (pid 6084) 387s; run: log: (pid 6114) 385s run: nginx: (pid 5973) 417s; run: log: (pid 6276) 359s run: oc_bifrost: (pid 5816) 477s; run: log: (pid 5831) 476s run: oc_id: (pid 5961) 420s; run: log: (pid 5966) 419s run: opscode-erchef: (pid 6186) 379s; run: log: (pid 6176) 381s run: opscode-expander: (pid 6039) 388s; run: log: (pid 6071) 388s run: opscode-solr4: (pid 5992) 399s; run: log: (pid 5999) 398s run: postgresql: (pid 5805) 478s; run: log: (pid 5809) 477s run: rabbitmq: (pid 5767) 480s; run: log: (pid 5760) 481s run: redis_lb: (pid 5377) 595s; run: log: (pid 6272) 359s
Créez un utilisateur administrateur et une organisation :
Nous devons créer un utilisateur administrateur. Cet utilisateur aura accès pour apporter des modifications aux composants de l'infrastructure de l'organisation que nous allons créer. La commande ci-dessous générera automatiquement la clé privée RSA et doit être enregistrée dans un emplacement sûr.
Les détails de l'utilisateur sont ci-dessous.
Nom d'utilisateur :administrateur
Prénom :administrateur
Nom de famille :administrateur
Courriel :[email protected]
Mot de passe :mot de passe
Nom de fichier :admin.pem
Chemin :/etc/chef
chef-server-ctl user-create admin admin admin [email protected] password -f /etc/chef/admin.pem
Commande d'origine :
chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' -f PATH_FILE_NAME
Il est temps pour nous de créer une organisation pour organiser les configurations des chefs.
Nom abrégé :itzgeek (Remarque :le nom doit commencer par une lettre minuscule ou un chiffre, peut contenir une lettre minuscule, des chiffres, des traits d'union et des traits de soulignement, et doit être compris entre 1 et 255 caractères )
Nom complet de l'organisation :ITzGeek Inc (Remarque :Doit commencer par un caractère d'espace non blanc et doit être compris entre 1 et 1023 caractères )
Utilisateur de l'association :admin (Remarque :Cette option associera l'utilisateur créé précédemment (admin ) avec les administrateurs groupe de sécurité sur le serveur chef )
Nom de fichier :itzgeek-validator.pem (Remarque :la commande génère automatiquement la clé privée RSA et doit être enregistrée dans un emplacement sûr )
Chemin :/etc/chef
chef-server-ctl org-create itzgeek "ITzGeek, Inc" --association_user admin -f /etc/chef/itzgeek-validator.pem
Commande d'origine :
chef-server-ctl org-create short_name 'full_organization_name' --association_user user_name --filename ORGANIZATION-validator.pem
A partir de maintenant, vous aurez deux .pem clés dans /etc/chef annuaire. Dans notre cas, ils s'appelleront admin.pem et itzgeek-validator.pem . Bientôt, nous placerons ces deux fichiers dans la machine du poste de travail Chef.
Pare-feu :
Le serveur Chef nécessite que les ports suivants soient ouverts via le pare-feu. Mais n'activant que 80 et 443 ferait aussi pour nous.
Exécutez la commande suivante pour autoriser 80 et 443 à travers le pare-feu.
firewall-cmd --permanent --zone public --add-service http firewall-cmd --permanent --zone public --add-service https firewall-cmd --reloadPages :1 2 3