Chef Installation · 10 min read · Nov 09, 2025

Comment installer Chef Infra Server sur Debian 12

Chef est un puissant logiciel d’automatisation sur Debian Linux conçu pour gérer et configurer des environnements serveur à grande échelle. Il facilite le déploiement, la configuration et la gestion des applications et de l’infrastructure en utilisant du code, promouvant ainsi les principes de l’infrastructure en tant que code (IaC). Chef utilise un langage spécifique au domaine (DSL) écrit en Ruby pour définir des “recettes” et des “cookbooks” qui spécifient comment les serveurs doivent être configurés. Cela permet aux administrateurs système et aux équipes DevOps d’automatiser des tâches répétitives, d’assurer la cohérence à travers les environnements et de faire évoluer facilement l’infrastructure. Chef prend en charge une large gamme de ressources et d’intégrations, ce qui en fait un outil polyvalent pour gérer des environnements complexes sur Debian, Ubuntu Linux et d’autres plateformes.

Dans ce tutoriel, nous allons vous montrer comment installer Chef Server et Chef Workstation sur des serveurs Debian 12 étape par étape.

Prérequis

Pour compléter ce guide, assurez-vous d’avoir les éléments suivants :

  • 3 serveurs Debian 12.
  • Un utilisateur non-root avec des privilèges d’administrateur.

Configuration du FQDN

Dans cette première étape, vous allez configurer le FQDN (Fully Qualified Domain Name) pour le serveur Chef, la station de travail Chef et le client.

Exécutez la commande hostnamectl suivante pour configurer le fqdn pour chaque serveur.

sudo hostnamectl set-hostname chef.howtoforge.local  
sudo hostnamectl set-hostname workstation.howtoforge.local  
sudo hostnamectl set-hostname client.howtoforge.local

Ouvrez le fichier /etc/hosts sur chaque serveur en utilisant la commande de l’éditeur nano suivante.

sudo nano /etc/hosts

Insérez la configuration suivante et assurez-vous de changer l’adresse IP détaillée, le nom d’hôte et le fqdn avec vos paramètres.

192.168.5.15     chef.howtoforge.local     chef  
192.168.5.20     workstation.howtoforge.local     workstation  
192.168.5.21     client.howtoforge.local     client

Enregistrez et fermez le fichier une fois terminé.

Maintenant, exécutez la commande ci-dessous pour vous assurer que chaque fqdn pointe vers la bonne adresse IP du serveur.

sudo hostname -f  
ping -c3 chef.howtoforge.local

configuration fqdn

Synchronisation de l’heure entre les serveurs

Après avoir configuré le FQDN, vous allez vous assurer que chaque serveur a l’heure synchronisée. Dans ce cas, vous allez configurer le serveur NTP sur le serveur Chef et configurer la station de travail Chef et le client pour se connecter à celui-ci.

Configuration de Chrony sur le serveur Chef

Sur le serveur Chef, exécutez la commande suivante pour mettre à jour l’index des paquets du dépôt et installer le paquet Chrony.

sudo apt update  
sudo apt install chrony -y

installer chrony

Une fois que vous avez installé Chrony, ouvrez le fichier /etc/chrony/chrony.conf en utilisant la commande de l’éditeur nano suivante.

sudo nano /etc/chrony/chrony.conf

Insérez la configuration suivante pour définir le serveur NTP par défaut. Assurez-vous de choisir l’emplacement le plus proche de votre serveur, consultez ntp.org pour plus de détails.

De plus, vous allez configurer Chrony sur le serveur Chef en tant que serveur NTP pour la station de travail Chef et les clients.

pool 0.nl.pool.ntp.org iburst  
pool 1.nl.pool.ntp.org iburst  
pool 2.nl.pool.ntp.org iburst  
pool 3.nl.pool.ntp.org iburst  
  
allow 192.168.5.0/24

Enregistrez et fermez le fichier une fois terminé.

Ensuite, exécutez la commande suivante pour configurer le fuseau horaire par défaut et activer NTP.

sudo timedatectl set-timezone Europe/Amsterdam  
sudo timedatectl set-ntp true

Puis, redémarrez le service chrony pour appliquer les modifications.

sudo systemctl restart chrony

Enfin, vérifiez la source NTP en utilisant la commande ci-dessous.

chronyc sources

Vous devriez recevoir une sortie comme suit :

configurer chrony

Sur la station de travail Chef et le client

Maintenant, passez à la station de travail Chef et à la machine cliente. Ensuite, exécutez la commande suivante pour mettre à jour le dépôt et installer Chrony sur les deux serveurs.

sudo apt update  
sudo apt install chrony -y

Après cela, modifiez la configuration de Chrony /etc/chrony/chrony.conf en utilisant la commande de l’éditeur nano suivante.

sudo nano /etc/chrony/chrony.conf

Commentez la source NTP par défaut pour la désactiver, puis saisissez l’adresse IP du serveur Chef comme serveur NTP comme suit.

# chrony par défaut  
server 192.168.5.15 iburst

Enregistrez et fermez le fichier une fois terminé.

Ensuite, exécutez la commande suivante pour configurer le fuseau horaire par défaut et activer NTP.

sudo timedatectl set-timezone Europe/Amsterdam  
sudo timedatectl set-ntp true

Puis, redémarrez le service Chrony pour appliquer vos modifications.

sudo systemctl restart chrony

Enfin, vérifiez les sources NTP sur la station de travail Chef et le client en utilisant la commande suivante.

chronyc sources

Vous devriez voir que la source NTP par défaut pour la station de travail Chef et le client est le serveur Chef, qui a une adresse IP de 192.168.5.15.

configuration chrony station de travail chef client

Installation et configuration du serveur Chef

Maintenant que vous avez configuré le FQDN et synchronisé les heures entre les serveurs, vous êtes prêt à installer Chef. Tout d’abord, vous allez installer et configurer le serveur Chef.

Le serveur Chef est un écosystème central Chef qui connecte chaque partie, vous devez donc le configurer en premier. Dans ce cas, nous allons utiliser un serveur Chef avec 8 Go de RAM.

Installation du serveur Chef via DEB

Déplacez-vous vers le serveur Chef et exécutez la commande ci-dessous pour télécharger le paquet du serveur Chef. Dans cet exemple, vous allez utiliser Chef 15.

VERSION="15.7.0"  
wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/22.04/chef-server-core_${VERSION}-1_amd64.deb

Maintenant, installez le serveur Chef via le fichier .deb en utilisant la commande ci-dessous. L’installation prendra quelques minutes.

sudo apt install ./chef-server-core_*.deb

Une fois l’installation terminée, vous devriez obtenir la confirmation ‘Merci d’avoir installé Chef Infra Server‘.

installer serveur chef

Ensuite, exécutez la commande chef-server-ctl ci-dessous pour reconfigurer votre installation du serveur Chef.

sudo chef-server-ctl reconfigure

Lorsque vous y êtes invité, saisissez Y pour confirmer la licence Chef.

reconfigurer serveur chef

L’initialisation du serveur Chef va commencer. Une fois terminé, vous devriez obtenir une confirmation telle que ‘Chef Infra Server reconfiguré‘.

reconfiguration serveur chef terminée

Configuration de l’utilisateur et de l’organisation

Maintenant que vous avez reconfiguré le serveur Chef, vous allez configurer un utilisateur et une organisation sur votre installation du serveur Chef.

Créez un nouveau répertoire ~/.chef en utilisant la commande suivante.

mkdir -p ~/.chef

Ensuite, créez un nouvel utilisateur Chef en utilisant la commande suivante. Dans cet exemple, nous allons créer un nouvel utilisateur alice avec le mot de passe password et le certificat TLS sera stocké à ~/.chef/alice.pem.

sudo chef-server-ctl user-create alice Alice Wonderland [email protected] 'password' --filename ~/.chef/alice.pem

Maintenant, créez une nouvelle organisation en utilisant la commande ci-dessous. Assurez-vous de changer les détails du nom de l’organisation, de l’utilisateur associé et du chemin du certificat TLS.

sudo chef-server-ctl org-create hworgz 'HW Corp, Inc.' --association_user alice --filename ~/.chef/hworgz-validator.pem

Une fois tout terminé, vérifiez la liste des utilisateurs et des organisations sur le serveur Chef en utilisant la commande ci-dessous.

sudo chef-server-ctl user-list  
sudo chef-server-ctl org-list

Si tout se passe bien, vous devriez voir le serveur Chef avec l’utilisateur alice et l’organisation hworgz comme suit.

créer utilisateur et org

De plus, vous pouvez également vérifier les certificats TLS générés en utilisant la commande ci-dessous. Vous devriez voir les certificats alice.pem et hworgz-validator.pem.

ls ~/.chef/

À ce stade, vous avez terminé l’installation du serveur Chef.

Installation et configuration de la station de travail Chef

Après avoir installé le serveur Chef, vous allez installer la station de travail Chef. La station de travail Chef est un nœud que les administrateurs/utilisateurs utilisent pour créer et tester des cookbooks et des recettes.

Dans cet exemple, vous allez installer la station de travail Chef sur un serveur Debian 12 avec 2 Go de RAM.

Installation de la station de travail Chef via DEB

Déplacez-vous vers la station de travail Chef et exécutez la commande ci-dessous pour télécharger le paquet de la station de travail Chef en utilisant la commande wget ci-dessous. Dans ce cas, vous allez installer Chef Workstation 23.

VERSION="23.7.1042"  
wget https://packages.chef.io/files/stable/chef-workstation/${VERSION}/debian/11/chef-workstation_${VERSION}-1_amd64.deb

Une fois téléchargé, exécutez la commande suivante pour installer le paquet de la station de travail Chef sur votre système.

sudo apt install ./chef-workstation_*.deb

Lorsque c’est terminé, vous devriez obtenir la confirmation ‘Merci d’avoir installé Chef Workstation‘.

installer station de travail chef

Enfin, exécutez la commande ci-dessous pour vérifier la version de Chef.

chef -v

La sortie suivante confirme que vous avez installé Chef 23 sur votre serveur Debian.

vérifier version chef

Configuration de la station de travail Chef

Maintenant que vous avez installé la station de travail Chef, vous allez configurer votre installation.

Tout d’abord, générez une nouvelle clé SSH en utilisant la commande suivante. Saisissez lorsque vous y êtes invité pour configurer une phrase de passe pour la clé.

ssh-keygen -t ed25519

générer clé ssh

Maintenant, exécutez la commande ci-dessous pour télécharger la clé sur le serveur Chef chef.howtoforge.local. Cela sera utilisé pour récupérer les certificats TLS du serveur Chef vers la station de travail.

ssh-copy-id [email protected]

Saisissez votre mot de passe lorsque vous y êtes invité.

télécharger clé

Ensuite, générez un nouveau dépôt Chef en utilisant la commande ci-dessous. Dans cet exemple, vous allez créer un nouveau dépôt Chef test-repo.

chef generate repo test-repo

Maintenant, créez un nouveau répertoire ~/test-repo/.chef et déplacez-vous dedans.

mkdir ~/test-repo/.chef; cd ~/test-repo/.chef

Copiez les certificats TLS du serveur Chef vers la station de travail dans le répertoire actuel en utilisant la commande ci-dessous.

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

Une fois terminé, vérifiez la liste des fichiers dans le répertoire ~/test-repo/.chef.

ls ~/test-repo/.chef/

Assurez-vous que vos certificats TLS sont disponibles sur le serveur de la station de travail Chef.

Configuration de l’utilitaire Knife - Interface avec le serveur Chef

Maintenant que vous avez installé la station de travail Chef, vous allez configurer Knife sur votre station de travail Chef. Un knife est un outil en ligne de commande pour communiquer avec le serveur Chef qui vous permet de gérer des nœuds, des cookbooks, des recettes, des rôles et des environnements.

Sur la machine de la station de travail Chef, déplacez-vous vers le répertoire ~/test-repo/.chef et créez un nouveau fichier knife.rb en utilisant la commande de l’éditeur nano suivante.

cd ~/test-repo/.chef  
nano knife.rb

Insérez le script Ruby suivant et assurez-vous de changer les détails de l’utilisateur, des organisations, des fichiers de certificat TLS et de l’URL du serveur Chef.

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

Enregistrez et fermez le fichier une fois terminé.

Maintenant, déplacez-vous vers le répertoire ~/test-repo et récupérez les certificats du serveur Chef en utilisant la commande knife ci-dessous.

cd ~/test-repo  
knife ssl fetch

Une fois terminé, vous devriez obtenir la sortie suivante.

configuration knife

Désormais, vous pouvez utiliser le knife pour communiquer avec le serveur Chef et initialiser la machine cliente.

knife client list

Initialisation du client/nœud depuis la station de travail Chef

Dans la section suivante, vous apprendrez à utiliser Knife pour initialiser automatiquement le nœud 192.168.5.21 via SSH depuis la station de travail Chef.

Tout d’abord, déplacez-vous vers le répertoire ~/test-repo/.chef.

cd ~/test-repo/.chef

Exécutez la commande knife ci-dessous pour initialiser le client 192.168.5.21. Assurez-vous de changer l’utilisateur root et le mot de passe password avec vos informations.

Dans cet exemple, vous allez ajouter le nœud 192.168.5.21 et le nommer client.

knife bootstrap 192.168.5.21 -U root -P password --node-name client

Saisissez Y pour continuer et procéder au processus.

initialisation du nœud

Une fois terminé, vous devriez obtenir la confirmation ‘Phase Infra terminée‘.

initialisation terminée

Maintenant, vérifiez la liste des nœuds disponibles dans l’environnement Chef en utilisant la commande ci-dessous. Si tout se passe bien, vous devriez voir que le nœud client est disponible.

knife node list

Ensuite, vérifiez les détails du nœud client en utilisant la commande knife ci-dessous.

knife node show client

Dans la sortie suivante, vous pouvez voir le nœud client de la machine Debian 12 avec le FQDN client.howtoforge.local.

vérifier nœud knife

Enfin, vous pouvez maintenant exécuter des commandes arbitraires sur le nœud client via la commande knife ci-dessous.

knife ssh "client" "whoami;top" -u alice

Saisissez le mot de passe de l’utilisateur Chef alice lorsque vous y êtes invité. Si la commande réussit, vous devriez obtenir ce qui suit.

exécution de commande Linux via chef sur client

Conclusion

Félicitations ! Vous avez maintenant terminé l’installation du serveur Chef et de la station de travail sur des serveurs Debian 12. Vous avez également appris à utiliser l’outil en ligne de commande Knife pour initialiser des nœuds clients via SSH. Maintenant, vous pouvez ajouter de nouveaux nœuds clients et configurer des cookbooks et des recettes pour installer des applications.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.