Chef la recette !
Après avoir comparé au boulot 3 outils de gestion de conf, j’en retiens les éléments suivants :
- Cfengine : DSL spécifique et horrible à apprendre, orientations peu claire (à-la-Nagios), une communauté amorphe, pas hackable. Poubelle.
- Puppet : en ruby, un DSL spécifique pour les confs (bof), a fait ses preuves, une bonne doc, de plus en plus hackable (la doc s’améliore de jour en jour), une communauté dynamique, et le projet est géré sous redmine. Sympa.
- Chef : en ruby, tout en ruby, donc pas de DSL à apprendre (yeah!), une doc pas mal, hackable à l’infini, le projet est hyper mega dynamique, et ils ont des références énormes dans le monde ruby, du genre 37signals ou Engine Yard. Adopté !
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.