AGIX is a Linux only (well, 90%) service business so we spend every day installing, upgrading, changing and troubleshooting Linux servers of all types for clients across the world. For the past two years we’ve been using Puppet where suitable and have found it reasonably useful. But as time goes on and software versions change adding and removing capabilities, etc, we were falling behind and spending more time maintaining our custom Puppet components to the point where we’ve had to question our continued use of the automated deployment too.
I’m sure experienced Puppet masters (er, administrator) will have serious comments about what I’ve just said and that fine. But we all have to way up the cost of maintaining staff competencies.
We recently investigated and tested Ansible in a few projects and found it to be a suitable replacement but did require a different approach. They aren’t drop-in replacement for each other. I’d describe Ansible as being “more raw” than Puppet given Puppet’s “abstraction” layer. For example, in Puppet we’d say “make sure Apache is installed and enabled and running and is version x.y.z”. While in Ansible we’d say “install Apache with yum or apt-get, enable it, and so on”. Puppet takes care of the underlying system compatibility while Ansible requires a little more understanding of the underlying system.
At this point you might be interested in readying a recent article i wrote about Andible on this Blog.
And to be fair, an older article i wrote about Puppet.
I’m not claiming to be an expert in either Puppet or Ansbile and that’s the point. Must we be experts in all overlapping technologies to provide a service? It’s my humble opinion that “if you understands the technology, the product shouldn’t matter”. I’ve found that more true with Ansible and i’m a fan.