Configuration management - a look at Ansible
A year or so ago I looked around at some of the tools available for doing software configuration management.
I was in the process of deploying a Django application and stumbled upon this great (and kind of long) workshop video by Jacob Kaplan-Moss, one of the creators of Django. It’s a great resource for learning about web applications in general, talking about subjects such as reverse proxys and spoon feeding and automatic deployments.
One of the things Jacob mentioned in the video was that he wasn’t happy with the tools available for configuration management software within the Python space. The major options include Chef and Puppet, which both are written in Ruby and uses a Ruby DSL for configuring.
I haven’t tried Chef, but I have been digging into Puppet. And while I think Puppet has nice features and has gotten a lot of the concepts right, I’m not very happy working with it.
It turns out, that about the same time I did look around, a new alternative was launched called Ansible, written in Python.
I haven’t done a lot with it yet. But I really like what I’ve seen so far, and the design principles really resonates with me.
- The easiest config management system to use, ever.
- Requires no software to be installed on the remote box for bootstrapping
- Idempotent modules (although you can choose whether or not to have this for your own modules)
I think the author Michael DeHaan sums it up really good in this interview:
I also wanted to make the automation software that anybody could pick up and learn in minutes, but also that possessed some capabilities that nothing else really had. Many people had cloned Func or Puppet - but in my opinion hadn’t made signifigantly major departures towards making those tools easier to use. So that’s why I made Ansible.
Live demo and introduction to Ansible
Watch an introductory screencast on Ansible on YouTube.
← Go Back