# Infrastructure Chef {{INLINETOC}} ## Présentation de Chef Infra Server Le **serveur Chef Infra** agit comme un hub pour les données de configuration. Le **serveur Chef Infra** stocke les cookbooks, les politiques appliquées aux nœuds et les métadonnées qui décrivent chaque nœud enregistré géré par **Chef Infra Client**. Les nœuds utilisent **Chef Infra Client** pour demander au serveur Chef Infra des détails de configuration, tels que des recettes, des modèles et des distributions de fichiers. **Chef Infra Client** effectue ensuite autant de travail de configuration que possible sur les nœuds eux-mêmes (et non sur le serveur Chef Infra). Cette approche évolutive répartit l'effort de configuration dans toute l'organisation. Le serveur Chef Infra peut être configuré via le fichier `/etc/opscode/chef-server.rb`. Chaque fois que ce fichier est modifié, la commande de reconfiguration **chef-server-ctl** doit être exécutée pour appliquer les modifications. ## Présentation de Chef Infra Client ###chef infra client **Chef Infra Client** est un agent qui s'exécute localement sur chaque nœud géré par **Chef Infra Server**. Lorsque **Chef Infra Client** s'exécute, il exécute toutes les étapes nécessaires pour amener un nœud dans l'état attendu, notamment : - Enregistrement et authentification du nœud auprès de **Chef Infra Server** - Synchronisation des livres de recettes du serveur Chef Infra vers le nœud - Compilation de la collection de ressources en chargeant chacun des livres de recettes requis, y compris les recettes, les attributs et toutes les autres dépendances - Prendre les actions appropriées et requises pour configurer le nœud en fonction des recettes et des attributs - Rapporter des informations récapitulatives sur l'exécution à Chef Automate L'exécutable de **Chef Infra Client** peut être exécuté en tant que démon. L'exécutable de Chef Infra Client est exécuté en tant qu'outil de ligne de commande. Le fichier client.rb spécifie comment **Chef Infra Client** est configuré sur un nœud et présente les caractéristiques suivantes :\\ - L'emplacement par défaut de ce fichier est /etc/chef/client.rb.\\ - On peut utiliser l'option **--config** de la ligne de commande pour remplacer l'emplacement par défaut du fichier de configuration.\\ - Ce fichier n'est pas créé par défaut ###chef-solo **chef-solo** est une commande qui exécute **Chef Infra Client** d'une manière qui ne nécessite pas que le serveur **Chef Infra** fasse converger les cookbooks. **chef-solo** utilise le mode **local Chef** de **Chef Infra Client** et ne prend pas en charge les fonctionnalités suivantes présentes dans les configurations **Chef Infra Client/serveur** : - Distribution centralisée de cookbooks - Une API centralisée qui interagit avec et intègre les composants de l'infrastructure - Authentification ou autorisation **chef-solo** peut être exécuté en tant que démon. L'exécutable **chef-solo** est exécuté comme un outil de ligne de commande. ###ohai **ohai** est l'interface de ligne de commande pour **Ohai**, un outil utilisé pour détecter les attributs sur un nœud, puis fournir ces attributs à **Chef Infra Client** au début de chaque exécution de **Chef Infra Client**.