Chef la recette !

Après avoir comparé au boulot 3 outils de gestion de conf, j’en retiens les éléments suivants :

Seul défaut de Chef, ça bouge vite, très vite. Et les versions 0.7 présentes dans mes distrib préférées commencent à être vraiment dépassées.

Hier je me prends donc par la main, en m’inspirant de l’article de akitaonrails, et je cherche comment installer une 0.8. Miracle, tout est dans leur wiki, et ils proposent même des dépôts pour ma Ubuntu Lucid.

Voici un script chef-install pondu en 3 secondes :

#installation
add-apt-repository ppa:jtimberman/opschef
aptitude update
aptitude -y install chef
service chef-client stop
update-rc.d chef-client disable >/dev/null

#configuration
sed -i -e 's#^file.*#file_cache_path "/tmp/chef-solo"#' \
  -e 's#^cook.*#cookbook_path ["/var/chef-solo/cookbooks"]#' /etc/chef/solo.rb

#cookbooks (install 'git-core' if needed)
mkdir -p /var/chef-solo
cd /var/chef-solo
git clone http://github.com/opscode/cookbooks.git

#hyperspace!
cat >/etc/chef/recipes.json <<EOF
{
"resolver": {"nameservers":["192.168.0.1"], "search":"home"},
"recipes": ["resolver"]
}
EOF

Go ?

% sudo chef-solo -j /etc/chef/recipes.json
[Tue, 23 Mar 2010 13:47:37 +0100] INFO: Starting Chef Solo Run
[Tue, 23 Mar 2010 13:47:42 +0100] WARN: Missing gem 'right_aws'
[Tue, 23 Mar 2010 13:47:42 +0100] WARN: Missing gem 'mysql'
[Tue, 23 Mar 2010 13:47:43 +0100] INFO: Updating template[/etc/resolv.conf] at /etc/resolv.conf
[Tue, 23 Mar 2010 13:47:43 +0100] INFO: Backing up template[/etc/resolv.conf] to /etc/resolv.conf.chef-20100323134743
[Tue, 23 Mar 2010 13:47:43 +0100] INFO: Chef Run complete in 5.588404 seconds

Yeeehaa !

Mon fonctionnement actuel m’empêche de m’attacher à un serveur central et ainsi fonctionner en client/serveur. Je pense que je vais donc commencer à me faire des cookbooks et les utiliser “bêtement” via chef-solo, à voir.

Enfin pour l’instant, c’est juste énorme.