ansible – centralized configuration management…

… that did not drive me crazy so far.

i’ve been reading a bit about dev-ops-ish solutions for the centralized configuration management since quite a few years. i’ve even used puppet starting from 2009 with varying degree of success. i’ve considered also chef and cfengine. for the last two – i’ve never passed the reading blog posts/slides stage. puppet – with a bit of pain – did the job and let me set up ~20 servers; but i’d lie if i said it saved me much time. it felt unintuitive; due to the ‘calling back home’ architecture it made me bend over backwards in the configuration of nats and firewalls between actual servers and the puppet-master machine. and it was slow; and it required running [at least periodically] own ruby-based daemon on the managed machines. at some point – somewhere around upgrade to squeeze or just after it it all stopped working altogether. i did not have time or much of motivation to troubleshoot it.

some time ago i’ve read about ansible. no need to install any daemons on the managed machines? using ssh as the transport method? – it all sounded suspiciously sane. few weeks ago i was preparing myself to shard a database – go from 1 pair of masters in the circular replication configuration + 1 slave to 3 + 3 masters + 3 slaves and i thought i’ll give ansible a try. as with puppet i decided to use ansible mostly for configuring of nagios / munin monitoring, adding few entries to /etc/sysctl.d and configuring ntp synchronization – basically all nice to have but not critical parts of the configuration; i don’t operate large scale so mysql’s my.cnf can be still altered manually.

results? writing playbooks was pretty quick. i found what i needed online without much trouble. i probably don’t have perfect idea about ‘the proper’ way of doing it but it worked nevertheless. and now i have couple of reusable playbooks that can be handy in the future when setting up some new servers. applying playbooks to multiple hosts is pretty quick – thanks to the multi-threading; applying to a single host – is not any faster than with puppet but at least i have some idea what’s exactly going on.

Leave a Reply

Your email address will not be published. Required fields are marked *

(Spamcheck Enabled)