Installer Chef Server sur Ubuntu 17.04 (Zesty)

Ce guide pas à pas explique comment installer et configurer Chef Server sur Ubuntu 17.04. Vous apprendrez à mettre à jour le système, définir un FQDN, synchroniser l’heure avec NTP, installer le paquet Chef, activer l’interface web et ajouter un administrateur et une organisation. Notes de production, sécurité et dépannage incluses.
Important: Ubuntu 17.04 est une version non-LTS — préférez une version prise en charge en production ou adaptez les étapes aux versions récentes. Vérifiez toujours la page de téléchargement officielle de Chef pour obtenir la dernière version.
Intent principal et variantes
Intent principal: installer Chef Server sur Ubuntu Variantes liées: installer Chef, configurer Chef Server, Chef Manage, Chef sur Ubuntu 17.04, guide Chef Server, config gestion de configuration
Pré-requis
- Un serveur Ubuntu 17.04 minimal (accès root). Si vous êtes utilisateur sudo, exécutez:
sudo -i
. - Accès root ou privilèges sudo.
- Un nom de domaine pointant vers le serveur (FQDN).
- Connexion Internet pour télécharger paquets et dépendances.
Note: adaptez les commandes si vous utilisez une autre version d’Ubuntu.
Définition rapide
Chef: outil open source de gestion de configuration écrit en Ruby et Erlang. Il permet de centraliser la gestion de nœuds (clients) depuis un Chef Server.
Mise à jour du système
Avant d’installer des paquets, mettez à jour les dépôts et paquets:
apt update && apt -y upgrade
Une fois terminé, passez à l’étape suivante.
Configurer le nom d’hôte (FQDN)
Chef exige un nom d’hôte résolvable. Utilisez un FQDN, par exemple chef.votredomaine.com
.
Définissez le nom d’hôte temporairement:
hostname 'chef.yourdomain.com'
Mettez à jour le fichier /etc/hostname
:
echo "chef.yourdomain.com" | tee /etc/hostname
Ajoutez l’adresse IP publique et le FQDN dans /etc/hosts
:
echo "192.168.1.1 chef.yourdomain.com" >> /etc/hosts
Remplacez 192.168.1.1
et chef.yourdomain.com
par vos valeurs réelles.
Synchronisation de l’heure (NTP)
Chef est sensible aux changements d’horloge; configurez NTP pour synchroniser le temps (port UDP 123).
Installation et activation de NTP:
apt install ntp
systemctl start ntp
systemctl enable ntp
Vérifiez la synchronisation:
ntpq -p
Exemple de sortie attendue (inchangée du système source):
root@chef:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
#hydrogen.consta 129.6.15.29 2 u 34 64 17 174.427 -9.145 0.751
#helium.constant 128.59.0.245 2 u 30 64 17 176.812 -8.253 0.726
#lithium.constan 18.26.4.105 2 u 33 64 17 175.435 0.357 0.684
#ntppublic.uzh.c 130.60.159.8 3 u 24 64 17 256.712 8.982 0.927
+x.ns.gin.ntt.ne 249.224.99.213 2 u 25 64 17 0.872 -1.636 0.805
-borris.netwurx. 144.92.9.22 2 u 22 64 17 163.284 0.848 1.141
-ns1.do.steersne 195.66.241.3 2 u 23 64 17 222.882 -3.528 0.965
-sircabirus.von- 36.224.68.195 2 u 28 64 17 266.005 3.502 1.173
*chobi.paina.net 131.113.192.40 2 u 26 64 17 1.280 -1.852 1.046
#213.251.53.11 193.62.22.74 2 u 27 64 17 246.940 9.920 1.405
-flightplandatab 210.240.96.206 2 u 27 64 17 258.052 -1.338 2.789
-time.platformni 118.211.218.186 2 u 27 64 17 1.592 3.394 1.127
Télécharger et installer Chef
Récupérez le paquet Chef Server pour Ubuntu (exemple dans le tutoriel):
wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb
Remarque: visitez la page de téléchargement officielle de Chef pour obtenir le lien de la version la plus récente.
Installez le paquet .deb:
dpkg -i chef-server-*.deb
Après l’installation, il est nécessaire de configurer les services.
Configurer Chef Server
Pour démarrer et configurer tous les services Chef:
chef-server-ctl reconfigure
Cette étape peut prendre plusieurs minutes. À la fin, vous verrez un message confirmant la reconfiguration, par exemple:
Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!
Vérifiez l’état des services:
chef-server-ctl status
Exemple d’état attendu (issue du source):
root@chef:~# chef-server-ctl status
run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: oc_bifrost: (pid 5766) 92s; run: log: (pid 5842) 92s
run: oc_id: (pid 5849) 91s; run: log: (pid 5854) 91s
run: opscode-erchef: (pid 6244) 84s; run: log: (pid 6108) 85s
run: opscode-expander: (pid 5926) 88s; run: log: (pid 6010) 87s
run: opscode-solr4: (pid 5895) 89s; run: log: (pid 5912) 89s
run: postgresql: (pid 5718) 93s; run: log: (pid 5745) 92s
run: rabbitmq: (pid 5239) 101s; run: log: (pid 5099) 105s
run: redis_lb: (pid 5036) 121s; run: log: (pid 6361) 83s
Installer l’interface web (Chef Manage)
Chef Manage offre une console graphique pour administrer le serveur.
Installation:
chef-server-ctl install chef-manage
chef-server-ctl reconfigure
chef-manage-ctl reconfigure
Pour accepter automatiquement la licence:
chef-manage-ctl reconfigure --accept-license
Créer un administrateur et une organisation
Créez un répertoire pour stocker les clés RSA générées:
mkdir ~/.chef
Créer un utilisateur administrateur (exemple):
chef-server-ctl user-create admin Chef Administrator [email protected] StrongPassword -f ~/.chef/admin.pem
Remplacez les champs par vos valeurs (nom d’utilisateur, nom, email, mot de passe, chemin de clé).
Créer une organisation:
chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem
Remplacez my_org
, My Organization
et admin
selon votre contexte.
Accéder à la console web
Ouvrez dans votre navigateur:
http://Your-Server-IP
ou utilisez votre nom de domaine (FQDN). Vous devriez voir l’écran de connexion.
Connectez-vous avec le compte administrateur créé. Après connexion, vous verrez le tableau de bord.
Plugins optionnels
Rapports (Reporting):
chef-server-ctl install opscode-reporting
chef-server-ctl reconfigure
opscode-reporting-ctl reconfigure
opscode-reporting-ctl test
Push Jobs (exécution de tâches ad hoc):
chef-server-ctl install opscode-push-jobs-server
chef-server-ctl reconfigure
opscode-push-jobs-server-ctl reconfigure
Checklist d’exploitation (role-based)
Administrateur système:
- Valider FQDN et entrée DNS
- Vérifier NTP et synchronisation horaire
- Exécuter
chef-server-ctl status
- Sauvegarder les fichiers PEM (
~/.chef/*.pem
) et restreindre les permissions
Ingénieur DevOps:
- Installer Cookbooks nécessaires
- Configurer environnements et rôles
- Tester run-lists sur nœuds de staging
Sécurité/Compliance:
- Restreindre accès à la console via firewall
- Forcer HTTPS (nginx) en production
- Rotations de clés et révocation périodique
Mini-méthodologie pour un déploiement en production
- Préparer une VM ou instance LTS (préférer Ubuntu LTS).
- Appliquer durcissement réseau (groupes de sécurité / firewall).
- Installer et vérifier NTP.
- Installer Chef Server sur environnement de test.
- Valider intégration avec CI/CD, sauvegardes et monitoring.
- Promouvoir en production lors d’une fenêtre de maintenance.
Sécurité et durcissement
- Activez HTTPS (certificat valide) pour la console web (nginx géré par Chef Server).
- Limitez l’accès SSH et à la console aux adresses IP fiables.
- Protégez les clés privées
~/.chef/*.pem
(chmod 600). - Surveillez les logs (nginx, postgresql, rabbitmq) et configurez alertes.
Compatibilité et migration
- Le paquet d’exemple ciblait Ubuntu 16.04 en nom de chemin; assurez-vous que la version du paquet est compatible avec votre distribution.
- Pour migrer vers une version plus récente d’Ubuntu, testez la procédure sur un clone et consultez la documentation officielle Chef pour les notes de version et compatibilité.
Dépannage courant
- Si
chef-server-ctl reconfigure
échoue, relire la sortie du terminal et vérifier les logs dans/var/log/
(nginx, postgresql, rabbitmq). - Vérifiez l’espace disque: un manque d’espace peut empêcher le démarrage des services.
- Si la console web ne répond pas, validez
chef-server-ctl status
etsystemctl status nginx
.
Exemples de commandes utiles:
chef-server-ctl tail
chef-server-ctl test
Contre-exemples et limites
- Ce guide installe Chef Server «sur site». Dans de petites équipes ou pour des environnements cloud natifs, une solution managée (SaaS) ou des outils plus légers (Ansible, Terraform pour provisioning) peuvent être préférables.
- Chef est conçu pour gérer de grands parcs de nœuds. Pour un seul serveur, l’overhead d’un Chef Server peut être excessif.
Critères d’acceptation
- Chef Server répond sur l’URL configurée via HTTPS/HTTP interne.
- L’utilisateur administrateur peut se connecter via la console web.
- Les fichiers PEM pour l’admin et l’organisation sont présents dans
~/.chef
et lisibles uniquement par root/utilisateur prévu. - Les services essentiels (nginx, postgresql, rabbitmq) sont
run
selonchef-server-ctl status
.
FAQ
Q: Puis-je utiliser ce guide pour Ubuntu 18.04/20.04 ?
A: Les étapes générales s’appliquent, mais adaptez le paquet Chef à votre distribution et préférez une version LTS en production.
Q: Où trouver la dernière version de Chef Server ?
A: Sur la page officielle de téléchargement de Chef (packages.chef.io).
Q: Que faire si chef-server-ctl reconfigure
échoue ?
A: Consultez les logs, vérifiez les dépendances, l’espace disque et la configuration DNS/FQDN.
Résumé
- Chef Server centralise la gestion de configuration pour de nombreux nœuds.
- Ce guide couvre la préparation du système, l’installation, la configuration web et les extensions (Reporting, Push Jobs).
- Pour la production, durcissez le serveur, utilisez HTTPS et testez la migration sur un environnement de staging.
Matériaux similaires

Barres de défilement Windows : agrandir et personnaliser

Mises à jour automatiques de sécurité Ubuntu 16.04

Restreindre les autorisations Android après root

Installer Chef Server sur Ubuntu 17.04

Erreur 500 Microsoft Teams : guide de résolution
