Utiliser chef #2 – Installation du poste de travail
La suite du précédent article « Utiliser chef #1 – Création d’un compte chez Opscode »
Parce que pour un bon Chef, le plus important c’est un bon poste de travail !
Bon, plus sérieusement, vous verrez souvent ce schéma dans les présentations Chef :
On peut y voir plusieurs parties trés importantes :
L’ensemble des éléments pour construire un serveur
Je vais appeler cet ensemble « la cuisine » dans la suite de mes articles.
Les recettes (recipes)
C’est un script écrit, dans un DSL (Domain specific language) l’exécution se fait, dans le sens de la lecture. Cela va remplacer votre script d’installation automatique :).
Les attributs (attributes)
Comme vos recettes vont s’exécuter sur des machines différentes, vous allez vouloir changer des informations. Par exemple, une adresse mail, un nom de virtualhost, une taille mémoire, etc.
Les livres de recettes (cookbooks)
C’est l’ensemble des recettes rassemblées dans un package pour gérer un composant. Pour gèrer par exemple Apache, des versions de Java, Ruby, des serveurs d’application Rails, Tomcat, etc. Un cookbook pour Apache2 va contenir tout pour installer et configurer le serveur et ses vhosts. Et l’on peut gérer plusieurs versions de ces cookbooks.
Les sacs de données (data bags, oui je sais la traduction n’est pas trés classe !)
Pour mettre en vrac :p les informations qui vont êtres utilisés par les recettes. Comme par exemple, la définition d’un utilisateur avec sa clée SSH, une application, etc.
Les roles
Ils vont permettre d’assembler plusieurs recettes pour gérer un type de serveur.
Les environnements
Production, préproduction, etc. En limitant les versions de recette dans les différents environnements, nous allons pouvoir mettre en place une stratégie de validation des applications/middlewares.
On va faire quoi de tout ça ?
Les noeuds (nodes)
Le but est d’installer nos machines qui peuvent être physiques, virtualisées ou dans le Cloud (c’est à la mode parait-il ). Ce sont donc des noeuds. Pour exécuter les recettes sur les machines, vous avez le choix entre :
- chef-solo qui va être lancé sur une machine isolée
- Et chef-client qui va utiliser le reste de l’infrastructure que nous allons voir
Dans les deux cas, il y a la librairie ‘ohai’ qui liste plein d’informations sur la machine. Et la run-list définie ce qui va être réalisé sur notre serveur.
Le serveur chef
Nous allons installer toute notre cuisine sur un serveur pour le distribuer à nos noeuds. En plus de tout ça, il y a un moteur de recherche qui permet de trouver les noeuds en fonction de différents critères. Mais aussi un manager qui est la GUI sur laquelle vous vous êtes connecté dans l’article 1.
Le poste de travail (workstation)
Et pour gérer tout ça en ligne de commande, il y a l’outil « knife ».
L’installation sur le poste
Comme vous avez installé Ruby c’est trés simple :
Allez donc un tour à l’adresse de la console d’administration Opscode.
Et générez la configuration de knife :
Préparez la clé de validation :
Et copiez les fichiers téléchargé dans le répertoire « .chef ». Il resemble à ça pour le fichier « knife.rb » :
Fichier « nledez-demo.pem » :
Placez vos clés dans le même répertoire :
Et pour tester que la configuration marche bien :
Vous constatez que c’est la même chose que dans l’IHM Web
Pour une raison que je n’explique pas, la clé que j’ai générée dans l’article précédent ne marchait pas…
Je l’ai regénérée à l’adresse de la gestion de compte.
Voila voila, si tout ça marche pour vous c’est bon pour les articles à suivre. Sinon il va falloir trouver pourquoi
Vous pourrez retrouver les fichiers utilisés sur mon compte Github.
Et la version de l’article courant dans le tag article01.
Crédit photos :