
Le local mode vous mène loin, mais il ne saura jamais répondre à « quelles machines existent ? » ni « lesquelles portent ce rôle ? ». Ces questions exigent un serveur. Ce module monte un serveur CINC, la distribution libre du Chef Infra Server, y enrôle un nœud, et montre ce que cela débloque réellement : un inventaire centralisé et la recherche sur le parc. L'installation réserve quelques pièges : ils sont tous documentés ici. Public visé : avancés ayant décidé que le serveur se justifiait.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Installer et configurer un serveur CINC.
- Créer une organisation et un utilisateur.
- Enrôler un nœud avec
knife bootstrap. - Interroger le parc avec
knife search.
Prérequis
Section intitulée « Prérequis »- Avoir tranché la question du serveur (Local mode ou serveur ?).
- Une machine dédiée : comptez 8 Go de RAM et 4 vCPU, le serveur embarque PostgreSQL, OpenSearch et nginx.
Installer le serveur
Section intitulée « Installer le serveur »Le paquet ne s'appelle pas cinc-server mais cinc-server-core. C'est la
première erreur classique : chercher un paquet qui n'existe pas.
VER=15.10.114curl -fsSLO "https://downloads.cinc.sh/files/stable/cinc-server/${VER}/debian/13/cinc-server-core_${VER}-1_amd64.deb"sudo dpkg -i cinc-server-core_*.debL'installation ne fait que déposer les fichiers (environ 360 Mo). C'est la reconfiguration qui construit réellement le serveur : elle déploie PostgreSQL, OpenSearch, nginx et les services internes. Comptez plusieurs minutes.
sudo cinc-server-ctl reconfigure --chef-license acceptRelancez la reconfiguration après chaque correction. Le succès est explicite :
Cinc Server Reconfigured!Créer l'organisation et l'utilisateur
Section intitulée « Créer l'organisation et l'utilisateur »Un serveur Chef isole les données par organisation. Il faut donc au moins un utilisateur et une organisation, chacun repartant avec une clé RSA.
sudo cinc-server-ctl user-create stephane Stephane Robert admin@lab.local \ 'MotDePasse!' --filename /tmp/stephane.pem
sudo cinc-server-ctl org-create lab "Lab Chef" \ --association_user stephane --filename /tmp/lab-validator.pemDeux clés en sortent, aux rôles bien distincts. stephane.pem est votre clé
personnelle : c'est elle qui vous authentifie depuis le poste de travail.
lab-validator.pem est la clé de validation : elle sert uniquement à
créer l'identité d'un nouveau nœud lors de son enrôlement.
Configurer le poste de travail
Section intitulée « Configurer le poste de travail »Le poste dialogue avec le serveur via un config.rb qui pointe vers l'URL de
l'organisation, et non vers la racine du serveur.
chef_server_url "https://cinc-server.local/organizations/lab"node_name "stephane"client_key File.expand_path("stephane.pem", File.dirname(__FILE__))cookbook_path [File.expand_path("../cookbooks", File.dirname(__FILE__))]Le serveur présente un certificat auto-signé. Il faut donc le récupérer et
le faire confiance, ce que knife sait faire :
knife ssl fetchknife ssl checkSuccessfully verified certificates from `cinc-server.local'La connexion se vérifie d'un coup :
knife user liststephanePublier les cookbooks
Section intitulée « Publier les cookbooks »En mode serveur, les nœuds ne lisent plus vos cookbooks sur votre disque : ils les téléchargent depuis le serveur. Il faut donc les y publier.
knife cookbook upload webstack durcissementknife cookbook listUploaded 2 cookbooks.
durcissement: 1.0.0webstack: 1.0.0Enrôler un nœud
Section intitulée « Enrôler un nœud »knife bootstrap se connecte en SSH, installe l'agent, crée l'identité
du nœud sur le serveur, puis lance une première convergence.
knife bootstrap 192.168.122.245 \ --ssh-user ubuntu --sudo -i ~/.ssh/id_ed25519 \ --node-name web-srv1 \ --run-list 'recipe[webstack]'Creating a new client identity for web-srv1 using the validator key.Infra Phase complete, 2/11 resources updated in 02 secondsCe que le serveur débloque vraiment
Section intitulée « Ce que le serveur débloque vraiment »C'est ici que le serveur justifie son coût. Deux capacités, impossibles en local mode.
Un inventaire, sans se connecter aux machines
Section intitulée « Un inventaire, sans se connecter aux machines »Le serveur conserve ce que chaque nœud lui a rapporté lors de sa dernière convergence. Vous interrogez cette mémoire, pas la machine :
knife node show web-srv1Node Name: web-srv1Environment: _defaultFQDN: chef-node-1.localIP: 192.168.122.245Run List: recipe[webstack]Recipes: webstack, webstack::install, webstack::configPlatform: debian 13Aucune connexion SSH n'a eu lieu. Sur un parc de plusieurs centaines de machines, c'est la différence entre savoir et aller voir.
La recherche sur le parc
Section intitulée « La recherche sur le parc »C'est la fonctionnalité que le local mode ne remplacera jamais. Le serveur indexe les attributs de tous les nœuds, et vous les interrogez :
knife search node 'platform:debian' -iknife search node 'recipes:webstack*' -i1 items foundweb-srv1La question « quelles machines portent cette recette ? » obtient enfin une réponse. Et cette recherche est disponible depuis une recette : un serveur web peut découvrir l'adresse de la base de données sans qu'on la lui code en dur. C'est ce qui rend une infrastructure réellement dynamique.
Dépannage
Section intitulée « Dépannage »L'installation du serveur est le passage le plus accidenté de ce parcours. Voici les erreurs rencontrées et leur parade.
| Symptôme | Cause probable | Solution |
|---|---|---|
Paquet cinc-server introuvable | Il s'appelle cinc-server-core | Télécharger le bon nom |
cannot load such file -- .../partybus/config.rb | Configuration absente du paquet | La créer (voir plus haut) |
Parent directory /etc/cron.hourly does not exist | Image minimale sans cron | sudo mkdir -p /etc/cron.hourly |
The server's certificate belongs to 'cinc-server.local' | Nom d'hôte ne correspondant pas au certificat | Utiliser exactement le nom du certificat |
401 "Unauthorized" au bootstrap | Ancienne identité dans /etc/cinc/ | Supprimer client.pem et client.rb dans /etc/cinc |
| Le nœud ne trouve pas ses cookbooks | Ils ne sont pas publiés | knife cookbook upload |
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Le paquet s'appelle
cinc-server-core; l'installation dépose les fichiers, c'estreconfigurequi construit le serveur. - Sur Debian 13, deux lacunes de packaging bloquent la reconfiguration :
partybus/config.rbet/etc/cron.hourly. - Un serveur isole par organisation ; deux clés en sortent : la vôtre (authentification) et le validateur (enrôlement), qui est un passe-partout à protéger.
- Le certificat est auto-signé :
knife ssl fetch, et le nom d'hôte doit correspondre au certificat. - En mode serveur, les cookbooks se publient (
knife cookbook upload) : les nœuds les téléchargent. - Un nœud ex-local mode garde son identité dans
/etc/cinc/(et non/etc/chef/) : la nettoyer, sinon 401. - Le serveur débloque l'inventaire sans connexion et la recherche sur le parc, y compris depuis une recette.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Policy groups : promouvoir une révision : Ce que le serveur rend possible : promouvoir une révision de dev vers la production.
- Mode pull : convergence planifiée : La convergence périodique et la recherche sur l'inventaire que vous venez de constituer.
- Exploiter Chef sans serveur : La contrepartie honnête : ce que ce serveur coûte, et comment s'en passer.