Pages

Rechercher dans ce blog

mardi 30 avril 2013

Mise en place d'un cookbook

Mise en place d'un cookbook

On y arrive enfin !

Pour faire simple, nous allons mettre en place une recette qui va installer "Tree" sur notre node.

Pour le moment, je vous conseille de regarder les nombreuses recettes "recipes" disponibles sur le site communautaire d' Opscode avant de vouloir coder la votre, mais vous en faites pas j'y reviendrai également plus tard.


Avant de vouloir créer votre recette, vérifier toujours que le site communautaire ne l'a pas déjà... ça serait bête de réinventer la roue..
 
La recette "Tree" existe sur le site.

Depuis votre "workstation" lancer la commande suivante :

knife cookbook site install tree

La recette est téléchargée mais n'est disponible pour le moment que sur votre "workstation", il nous faut donc l'envoyer au serveur :

knife cookbook upload tree

Après cette commande, vous devriez voir dans l'onglet cookbook de l'interface web, la recette "Tree".

Aller sur l'onglet node, puis glisser-déposer la recette dans la "run-list" et "save" of course..

Ensuite retournez sur la machine "client" et lancer la commande :

sudo chef-client

le résultat :
upgrade package tree from uninstalled to 1.5.3-2

Voilà votre première installation de chef est terminée.

Mise en place d'un node sous Chef 11

Mise en place d'un node sous Chef 11

 

Afin de pouvoir configurer un ordinateur, celui-ci doit faire parti d'un node.
Nous allons donc ajouter un ordinateur et créer un node. Pour se faire, nous utilisons l'outil "knife".

Sur la "workstation" précédemment configurée :
je pense que vous aurez compris que l'ip ici est celle du PC a configurer, et que les identifiants sont eux-aussi un compte valable sur cette machine.

knife bootstrap X.X.X.X -x Alexis.Autret --sudo
Bootstrapping Chef on X.X.X.X
Failed to authenticate Alexis.Autret - trying password auth
Enter your password: 
10.154.98.52 knife sudo password: 
10.154.98.52 
10.154.98.52 Starting Chef Client, version 11.4.0
10.154.98.52 Creating a new client identity for O000081287.xxxxxx using the validator key.
10.154.98.52 resolving cookbooks for run list: []
10.154.98.52 Synchronizing Cookbooks:
10.154.98.52 Compiling Cookbooks...
10.154.98.52 [2013-04-17T14:27:03+02:00] WARN: Node O000081287.xxxxxx has an empty run list.
10.154.98.52 Converging 0 resources
10.154.98.52 Chef Client finished, 0 resources updated

Et voilà, vous pouvez vérifier que l'ordinateur est bien pris en compte sur l'interface web de chef.

Mise en place d'une "workstation" Chef-server 11

Mise en place d'une "workstation" Chef 11

Mise en place d'une "workstation"

Afin de configurer le serveur il faut mettre en place une "workstation" qui permet d'utiliser l'API de chef.
Vous pouvez le faire sur le serveur ou sur votre ordinateur de travail.
C'est cette "workstation" qui permettra également de "cuisiner" vos recettes, de les envoyer sur le serveur et plus généralement de paramétrer un peu tout, mais vous comprendrez plus tard...

Commencer par télécharger chef-client pour votre distribution sur cette page :

http://www.opscode.com/chef/install/

Puis installer-le. Les fichiers iront se mettre dans le dossier /opt/chef/ .

Puis , nous allons nous créer une répertoire de travail :

mkdir -p /home/USER/chef

Faire un git-clone du dossier chef-repos (fournis par opscode) :

git clone https://github.com/opscode/chef-repo.git

Dans ce dossier, nous allons créer une dossier caché qui contiendra les clefs d'authentifications  :

mkdir ./.chef
Mettre dans ce dossier les fichiers admin.pem et chef-validator.pem qui sont situés sur le serveur dans le dossier /etc/chef-server. (Je vous laisse choisir votre méthode de transfert : scp, clef usb, mail..)

Puis dans le même dossier (.chef) nous allons créer le fichier vide knife.rb (qui contiendra la configuration)

touch knife.rb

Nous allons maintenant configurer knife.rb :

lancer la commande :

knife configure -i

Je vous mets en exemple "une" configuration :
à noter que :
- il n'est plus nécessaire de spécifier le port 4000 pour l' URL du serveur.
- le fichier "validation.pem" se nomme maintenant "chef-validator.pem".


Overwrite /tmp/chef11/chef-repo/.chef/knife.rb? (Y/N) y
Please enter the chef server URL: [http://router.linuxguy.lan:4000] https://chef11.linuxguy.lan
Please enter a name for the new user: [arun] testuser
Please enter the existing admin name: [admin] admin
Please enter the location of the existing admin's private key: [/etc/chef/admin.pem] .chef/admin.pem
Please enter the validation clientname: [chef-validator]
Please enter the location of the validation key: [/etc/chef/validation.pem] .chef/chef-validator.pem
Please enter the path to a chef repository (or leave blank):
Creating initial API user...
Please enter a password for the new user:
Created user[testuser]
Configuration file written to /tmp/chef11/chef-repo/.chef/knife.rb

Vérification :

~/chef/chef-repo$ knife client list
chef-validator
chef-webui

Voilà, maintenant, nous allons configurer un "node".

Installation CHEF server 11 sur SL6

 Installation de Chef-server sur SL 6


Qu'est ce que chef ?

Chef sur wikipedia

Site officiel     Site communautaire

Ce qu'il faut savoir en gros :

Chef est un outil de management de configuration écris en Ruby et Erlang. Il permet de maintenir/configurer des serveurs ou des postes de travail grâce à des "recettes" (recipes) ou des "manuels de cuisine" (cookbooks) qui sont stockés sur le serveur chef.
Les recettes sont écrites en ruby ou DSL(domain specific language). Pour faciliter les évolutions, ces recettes sont généralement "versionnées" (git la plupart du temps, mais il en existe d'autres qui peuvent mieux correspondre au langage ruby (bershelf..))

Nous allons donc dans ce tutoriel installer Chef-server 11.06 sur un SL6,
La première chose à vérifier est le hostname du serveur.
hostname -f
doit retourner le FQDN de la machine exemple : chef-server.mycompany.com


Installation :

Installation par RPM :

Aller sur la page : Chef install

Aller sur l'onglet Chef-server, puis copier le lien de téléchargement.

Positionnez vous dans votre répertoire de téléchargement :
cd /usr/local/src
et télécharger le .rpm :
wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.6-1.el6.x86_64.rpm 
on l'installe : (les fichiers vont se placer dans /opt/chef-server)
sudo rpm -ivh chef-server-11.0.6-1.el6.x86_64.rpm
Le script d'installation nous dis que faire :
sudo chef-server-ctl reconfigure
Voilà, on a plus qu'à se connecter sur l'interface web afin de changer le mot de passe par défaut du compte admin. 
L'adresse de la page web sera le FQDN de la machine. 
http://chef-server.mycompany.com qui va nous rediriger vers https://chef-server.mycompany.com 
Accepter le certificat de sécurité et se connecter avec les identifiants par défauts. id/pass: admin/p@ssw0rd1 
Voilà, chef-server est installé
Maintenant, il ne reste plus qu'à le configurer ;-)

Intégration Syntax highlighter sur Blogger

L'intégration de syntax highlighter sur Blogger se fait très facilement, ouvrir votre template Blogger, puis modifier le code html et insérer le code suivant avant la balise </head> :
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushErlang.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushGroovy.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPowerShell.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script language='javascript' type='text/javascript'>
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.defaults[&#39;toolbar&#39;] = true;
    SyntaxHighlighter.defaults[&#39;tab-size&#39;] = 8;
    SyntaxHighlighter.config.clipboardSwf = &#39;http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf&#39;;SyntaxHighlighter.all();
</script>

Maintenant, pour afficher le code : ne pas oublier de changer la class du script pour changer la coloration du code Enjoy ;-)
Fork me on GitHub