
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 |
À 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 »- Panorama des outils de gestion de configuration : comparer ce modèle serveur à celui de Puppet ou Salt.