# 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**.