Some friends told me for a while about collectd, why I should look at it, why munin is so painful and so on. If you’ve been reading my posts you know I have tweaked a little my $WORK munin install to make it faster and lighter. But I finally took time to explore collectd, and I regret to not have done this before. It has so many pros that I decided to implement it in parallel with munin (because I can’t afford being blind on metrics). But collectd comes without an UI : it “only” collectds data, but that’s not a problem. There are various web interfaces and after giving a look to a bunch of them I fell in love with Lindsay Holmwood‘s Visage.
Mcollective & Xen : naughty things
I already blogged about my experiments with mcollective & xen but I had something a little bigger in my mind. A friend had sent me a video showing some vmware neat features (DRS mainly) with VMs migrating through hypervisors automatically.
Meet the marionette
Another cool project I keep an eye on for some weeks is “the marionette collective“, aka mcollective. This project is leaded & develloped by R.I. Pienaar, one of the most active people in the puppet world too.
In the network space no one can hear your puppet scream
I’ve been lazy at maintaining my servers recently and decided to start playing with puppet reports. First I started with something simple that helps me to find on which machines my manifests have some failure.
A pkgin provider for puppet
On my Solaris machines at $WORK I use iMil‘s pkgin to install additional software. But until today, I add to do it by hand, on every machine… Not really what I like to do after a little more than a year using puppet. So I wrote a provider to manage packages with pkgin. It was very informative on puppet internals and I learned more about my favorite config management system.
When puppet meets nginx
At $WORK I started using Nginx a while ago, first as a front end to my mongrel instances for puppet. Recently I began to use it for one of its most know features : reverse proxy (and caching too). Of course this work had to be puppetized !
Put your ruby in my ERB
Today I started installing a reverse proxy at $WORK. I choose to follow this way, and all my DNS data is stored in my CMDB. Once again, the solution came from #puppet ! You can embed some “pure” ruby code in ERB templates. And, yes, you can query your database !
Solaris fnu
à $WORK je réinstalle des Solaris 10, et il y a des petits trucs qui font que l’environnement n’est pas directement convivial, surtout quand on a l’habitude d’une debian où il y a mass wrappers. Heureusement, le dernier né de tonton iMil est dispo et fonctionne du tonnerre. De même, il n’y a pas de sudo disponible par défaut, mais pfexec est là pour le remplacer très avantageusement. Petit “pfexec for dummies” nécessaire. Allez, un petit coup de ZFS pour continuer et tout sera de nouveau brillant & luisant.
Aide mémoire
Pour cross-compiler des applis pour son drobo :
- Décompresser le SDK (arm-2006q1-6-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2), par exemple /home/nico/drobo
- Ajouter /home/nico/drobo/bin au PATH
- créer un répertoire de build, par exemple /home/nico/drobo/build
- créer un répertoire de destination, par exemple /home/nico/drobo/target
- décompresser les sources à cross-compiler dans le rep de build
- lancer le configure de l’appli comme suit :
./configure --host=arm-none-linux-gnueabi --prefix=/home/nico/drobo/target
- puis make & make install classique
hop !
Fun with stored configs
After reading masterzen’s excellent blog post about puppet storedconfigs, it gave me the idea to create a system of subscription to services.
Puppet & munin : little things added
Disclaimer : this work is mostly based upon DavidS work, available on his git repo. In the scope of my work I needed to have munin support for freeBSD & Solaris. I also wrote a class for snmp_plugins & custom plugins. Some things are quite dependant from my infrastructure, like munin.conf generation script but it can easily be adapted to yours, by extracting data from your CMDB.
Feed your puppet
-Post en anglais, pour une fois-
Everyone using puppet knows DavidS awesome git repository : git.black.co.at. Unfornately for me, his puppet infrastructure seems to be almost only linux based. I have different OS in mine, including FreeBSD & OpenSolaris. Looking at his module-munin I decided to reuse it (and not recreate the wheel) but he used a custom fact that needed some little work. So this is a FreeBSD & (Open)Solaris capable version, to know what network interfaces have link up
La poupée agile
Il y a des trucs, ça relève du bon sens mais on y pense pas toujours. Dans le monde des sysadmins, il y en a qui militent pour ce qu’on appelle “l’agilité”. C’est en fait appliquer certaines techniques à la base mises en place pour le développement au monde de l’administration système. Personnellement, je trouve que ce sont essentiellement des conseils de bon sens, l’expérience qui parle en somme.
cd /etc/puppet && publish
J’en avais parlé il y a quelques temps avec des lutins donc le voici, mon /etc/puppet. Ne vous attendez pas à quelque chose d’exceptionnel puisque ça ne suis pas les best practices, notamment le découpage en modules. Accessoirement certaines classes ont besoin d’être réécrites (souvent les premières que j’ai conçues).
Puppet + Mongrel : follow up
Petite suite à mon précédent billet sur l’utilisation d’un LB devant puppet. En 0.24.5, il existe un bug gênant si vous utilisez les external nodes : personnellement la conf des nodes est stockées dans une base mysql et c’est un script qui me sort le YAML correspond à la config.