Client • Entité servant uniquement pour l’authentification • Identifié par son nom • Clé publique stockée sur le serveur • Clé privée à conserver sur le client • Peut être un node (serveur), un administrateur (via knife), ... samedi 22 octobre 11
Attributs • Automatiques : depuis ohai (FQDN, IP, ...) • Depuis un recipe : paramètre pouvant changer selon le node • Manuels : forcés pour un node à une valeur précise samedi 22 octobre 11
Recipe • «Recette» décrivant ce que vous souhaitez accomplir sur le noeud • DSL en Ruby • Il peut y en avoir plusieurs par cookbook : Chef::Client et Chef::Server samedi 22 octobre 11
Upload du recipe • knife cookbook upload -o . motd • Ajouter le cookbook dans la runlist du noeud via la WebUI ou knife • Lancer chef-client sur le noeud samedi 22 octobre 11
Role • Possède • une run-list • des attributs • Permet d’assigner des attributs et des recipes (ou d’autres roles) à des noeuds similaires samedi 22 octobre 11
DataBag • Hashs stockés sur le serveur Chef, et accessibles depuis les noeuds • Servent à stocker des informations utilisées dans les cookbooks, mais dépendant de l’infrastructure et non d’un noeud précis • Liste d’utilisateurs, liste des datacenters, ... samedi 22 octobre 11
Environnement • Un noeud appartient à un environnement • Restrictions de versions par environnement • Attributs spécifiques • Permet de gérer, par exemple, un environnement de tests (qui n’a pas de restriction de version), et de production (les versions sont spécifiées) samedi 22 octobre 11
Recipe Apache • Installer le serveur apache (resource package) • Configurer un VirtualHost (resource template ou cookbook_file) • Service apache, notifié en cas de changement de configuration samedi 22 octobre 11
Search • Fonctionnalité clé • Permet de rechercher dans un recipe parmis les attributs de tous les autres noeuds • Recherche full-text samedi 22 octobre 11
Recipe HAProxy • Installer le paquet • Créer les users correspondants • Configurer HAProxy en utilisant une recherche pour récupérer la liste des serveurs webs samedi 22 octobre 11
Definition • Agit comme une resource • Permet de combiner plusieurs resources en une seule instruction • Exemple : definition nfs_mount, qui crée le point de montage (resource directory) et monte le FS distant (resource mount) samedi 22 octobre 11
Library • Ensemble de méthodes Ruby appelables dans les cookbooks • Permet d’étendre le DSL facilement • Exemple: appels à une source de données externe (SQL, LDAP, ...), méthodes helper (choix d’une IP «principale» pour une machine qui en possède plusieurs, ...) samedi 22 octobre 11
Lightweight Resources and Providers • Permet de définir simplement une resource, et les providers associés • Exemple : resource sql_database, providers mysql_database et postgresql_database • Ne requiert pas de «hack» samedi 22 octobre 11