GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer Chef Automation Server sur Ubuntu 20.04

Chef est une plate-forme puissante d'automatisation, simplifiant la gestion, le déploiement ou la configuration de l'infrastructure sur un réseau. Chef fonctionne en transformant l'infrastructure en code. Le développeur peut ensuite déployer ou gérer des ressources sur plusieurs serveurs ou nœuds, mais avant de déployer le code sur un autre environnement, il doit d'abord le créer et le tester sur un poste de travail. Dans l'ensemble, Chef est l'un des meilleurs outils pour administrer l'infrastructure à partir d'un poste de travail.

Pour la conformité, la visibilité des nœuds et le flux de travail, Chef Automate met à disposition une suite complète de fonctionnalités d'entreprise. Le logiciel s'intègre aux produits open source tels que Habitat, InSpec et Chef.

Dans ce tutoriel, nous allons vous montrer comment installer le serveur et le client Chef sur Ubuntu 20.04.

Prérequis

  • Deux de nouveaux VPS Ubuntu 20.04 sur la plate-forme cloud Atlantic.Net.

         Un seul client

         Un seul serveur

  • Un mot de passe root configuré sur votre serveur

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 20.04 comme système d'exploitation avec au moins 4 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

apt-get update -y

Étape 2 - Configurer le nom d'hôte

Avant de commencer, vous devrez configurer un nom d'hôte complet et une résolution de nom d'hôte sur votre serveur Chef.

Tout d'abord, configurez le nom d'hôte avec la commande suivante :

hostnamectl set-hostname chef.example.com

Ensuite, ouvrez le fichier /etc/hosts et liez l'adresse IP de votre serveur avec le nom d'hôte :

nano /etc/hosts

Ajoutez la ligne suivante :

chef-server-ip chef.example.com

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 3 :Installer le serveur Chef

Tout d'abord, installez les dépendances requises en exécutant la commande suivante sur le serveur Chef :

apt-get install curl wget gnupg2 -y

Ensuite, téléchargez le package Chef avec la commande suivante :

wget https://packages.chef.io/files/stable/chef-server/13.1.13/ubuntu/18.04/chef-server-core_13.1.13-1_amd64.deb

Une fois le package téléchargé, installez-le en exécutant la commande suivante :

dpkg -i chef-server-core_13.1.13-1_amd64.deb

Une fois le package installé, vous devrez reconfigurer le serveur Chef. Vous pouvez le reconfigurer avec la commande suivante :

chef-server-ctl reconfigure

Il vous sera demandé d'accepter la durée de la licence comme indiqué ci-dessous :

+---------------------------------------------+
Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
* Chef Infra Server
* Chef Infra Client
* Chef InSpec

Do you accept the 3 product licenses (yes/no)?

> yes

Tapez oui pour accepter la licence et appuyez sur Entrée pour continuer. Une fois l'installation terminée, vous devriez obtenir le résultat suivant :

Running handlers:
Running handlers complete
Chef Infra Client finished, 482/1032 resources updated in 04 minutes 34 seconds
Chef Server Reconfigured!

Remarque :L'installation prendra plus de 5 minutes

Étape 4 – Créer un compte administrateur et une organisation

Tout d'abord, créez un répertoire pour stocker toutes les clés.

mkdir ~/.chef_key

Ensuite, exécutez la commande suivante pour créer un compte administrateur :

chef-server-ctl user-create atlanticuser Atlantic User [email protected] 'mypassword' --filename ~/.chef_key/atlantic.pem

La commande ci-dessus créera un compte administrateur avec le nom atlanticuser, le nom complet "Atlantic User", le mot de passe "mypassword" et générera le fichier clé à ~/.chef_key/atlantic.pem.

Ensuite, créez une organisation avec la commande suivante :

chef-server-ctl org-create atlantic "atlantic cloud" --association_user atlanticuser --filename ~/.chef_key/atlantic-org.pem

La commande ci-dessus créera une organisation avec le nom atlantic, le nom complet "atlantic cloud", l'utilisateur associé "atlanticuser" et générera un fichier clé à ~/.chef_key/atlantic-org.pem.

Vous pouvez maintenant vérifier les clés générées avec la commande suivante :

ls ~/.chef_key/

Vous devriez voir le résultat suivant :

atlantic.pem hitjethva.pem

Étape 5 - Installer la console de gestion Web Chef

Ensuite, vous devrez installer Chef manage sur votre serveur. Chef manage est un module complémentaire qui peut être utilisé pour gérer le serveur Chef à partir de l'interface Web.

Vous pouvez installer Chef manage avec la commande suivante :

chef-server-ctl install chef-manage

Ensuite, reconfigurez le serveur Chef et Chef manage avec la commande suivante :

chef-server-ctl reconfigure
chef-manage-ctl reconfigure

Il vous sera demandé d'accepter le contrat de licence comme indiqué ci-dessous :

Press any key to continue.
Type 'yes' to accept the software license agreement or anything else to cancel.
yes

Tapez oui et appuyez sur Entrée pour terminer l'installation.

Étape 6 :Installer le client Chef

Ensuite, vous devrez vous connecter à l'ordinateur client Chef et installer le package client Chef.

Exécutez la commande suivante pour télécharger le package du poste de travail Chef :

wget https://packages.chef.io/files/stable/chef-workstation/20.6.62/debian/10/chef-workstation_20.6.62-1_amd64.deb

Une fois le package téléchargé, installez-le avec la commande suivante :

dpkg -i chef-workstation_20.6.62-1_amd64.deb

Après avoir installé le client Chef, vous devrez créer un référentiel Chef dans votre système. Le répertoire chef-repo stockera vos livres de cuisine Chef et d'autres fichiers associés.

Vous pouvez le créer avec la commande suivante :

chef generate repo chef-repo

Il vous sera demandé d'accepter la licence comme indiqué ci-dessous :

+---------------------------------------------+
Chef License Acceptance

Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/

Licenses that need accepting:
* Chef Workstation
* Chef Infra Client
* Chef InSpec

Do you accept the 3 product licenses (yes/no)?

> yes

Tapez oui et appuyez sur Entrée pour accepter la licence. Vous devriez obtenir le résultat suivant :

Persisting 3 product licenses...
✔ 3 product licenses persisted.

+---------------------------------------------+
Generating Chef Infra repo chef-repo
- Ensuring correct Chef Infra repo file content

Your new Chef Infra repo is ready! Type `cd chef-repo` to enter it.

Vous pouvez répertorier tous les fichiers et répertoires générés dans le référentiel Chef avec la commande suivante :

ls chef-repo

Vous devriez obtenir le résultat suivant :

chefignore cookbooks data_bags LICENSE policyfiles README.md

Ensuite, vous devrez créer un répertoire .chef pour stocker tous les fichiers de configuration de Knife et les fichiers .pem utilisés pour l'authentification de la paire de clés RSA avec le serveur Chef.

Vous pouvez le créer avec la commande suivante :

mkdir ~/chef-repo/.chef

Ensuite, générez une paire de clés SSH avec la commande suivante :

ssh-keygen -b 4096

Ne fournissez aucun mot de passe, appuyez simplement sur Entrée pour générer une paire de clés SSH comme indiqué ci-dessous :

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:OvOCW9vNnVfs8II8TKJnRxv9vwRu5R4JqRxWPVU1rTY [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| .B|
| . +|
| . + |
| . E .|
| S o * + |
| . + B B +|
| .= . O * @ |
| ...*.oo.O.= =|
| ....ooo.oo ++|
+----[SHA256]-----+

Ensuite, copiez la clé générée sur la machine serveur Chef avec la commande suivante :

ssh-copy-id [email protected]

Ensuite, vous devrez copier tous les fichiers .pem du serveur Chef vers la machine cliente. Vous pouvez les copier avec la commande suivante :

scp [email protected]:~/.chef_key/*.pem ~/chef-repo/.chef/

Vous devriez obtenir le résultat suivant :

atlantic.pem 100% 1674 2.2MB/s 
00:00
hitjethva.pem 100% 1678 2.4MB/s 
00:00

Étape 7 - Configurer le couteau et générer le livre de recettes

Ensuite, vous devrez configurer Knife et générer un livre de recettes sur la machine cliente.

Tout d'abord, accédez au référentiel avec la commande :

cd ~/chef-repo

Ensuite, générez votre premier livre de recettes avec la commande suivante :

chef generate cookbook my_cookbook

Une fois le livre de recettes généré, créez un nouveau fichier de configuration Knife :

nano ~/chef-repo/.chef/config.rb

Ajoutez les lignes suivantes :

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

Enregistrez et fermez le fichier.

Assurez-vous que tous les noms correspondent au nom de votre organisation et au nom d'utilisateur de l'administrateur.

Ensuite, modifiez le fichier /etc/hosts et ajoutez le nom complet de votre serveur Chef.

nano /etc/hosts

Ajoutez la ligne suivante :

chef-server-ip chef.example.com

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, récupérez le certificat SSL du serveur Chef avec la commande suivante :

cd ~/chef-repo
knife ssl fetch

Vous devriez obtenir le résultat suivant :

WARNING: Certificates from chef.example.com will be fetched and placed in your trusted_cert
directory (/root/chef-repo/.chef/trusted_certs).
Knife has no means to verify these are the correct certificates. You should
verify the authenticity of these certificates after downloading.
Adding certificate for chef_example_com in /root/chef-repo/.chef/trusted_certs/chef_example_com.crt

Vous pouvez également vérifier le SSL avec la commande suivante :

knife ssl check

Vous devriez obtenir le résultat suivant :

Connecting to host chef.example.com:443
Successfully verified certificates from `chef.example.com'

Étape 8 – Amorcer un nœud client

Ensuite, vous devrez installer le client Chef sur le nœud et valider 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 à partir du poste de travail.

Sur la machine cliente Chef, modifiez le répertoire en .chef avec la commande suivante :

cd ~/chef-repo/.chef

Ensuite, démarrez le client avec la commande suivante :

knife bootstrap chef.example.com -x root -P rootpassword --node-name clientnode

Une fois l'installation terminée, vous devriez obtenir le résultat suivant :

Patents: https://www.chef.io/patents
[chef.example.com] resolving cookbooks for run list: []
[chef.example.com] Synchronizing Cookbooks:
[chef.example.com] Installing Cookbook Gems:
[chef.example.com]
[chef.example.com] Compiling Cookbooks...
[chef.example.com] [2020-10-02T07:56:21+00:00] WARN: Node clientnode has an empty run list.
[chef.example.com] Converging 0 resources
[chef.example.com]
[chef.example.com] Running handlers:
Running handlers complete
Chef Infra Client finished, 0/0 resources updated in 02 seconds

Vous pouvez maintenant lister tous les nœuds avec la commande suivante :

knife client list

Vous devriez obtenir le résultat suivant :

atlantic-validator
clientnode

Étape 9 – Accéder à la console Chef Manage

Maintenant, ouvrez votre navigateur Web et accédez à la console de gestion Chef à l'aide de l'URL http://chef.server-ip/login. Vous devriez voir la page de connexion Chef :

Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Signer dans bouton. Vous devriez voir le tableau de bord Chef sur la page suivante :

Conclusion

Dans le guide ci-dessus, vous avez appris à installer le serveur et le client Chef sur le serveur Ubuntu 20.04. Vous avez également appris ses composants avec les paramètres d'installation et de configuration. Pour plus d'informations, vous pouvez consulter la documentation de Chef. Essayez Chef sur votre serveur privé virtuel d'Atlantic.Net !


Linux
  1. Comment installer MySQL sur Ubuntu 18.04

  2. Comment installer le serveur Minecraft sur Ubuntu 18.04

  3. Comment installer la localisation sur un serveur Ubuntu

  4. Comment installer MariaDB sur Ubuntu 22.04

  5. Comment installer Ubuntu Server 15.10 sur Hyper-v ?

Comment installer le serveur Mumble sur Ubuntu 15.04

Comment installer NGINX sur Ubuntu 20.04

Comment installer Ansible Server sur Ubuntu 18.04

Comment installer XWiki sur Ubuntu 20.04

Comment installer ClickHouse sur Ubuntu 20.04

Comment installer FTP sur Ubuntu 18.04 ?