So over the last several months, I have been dedicating a fair amount of my time to updating our configuration managment system. Several years ago I started using Puppet for this purpose. Due to some of the limitations of both my knowledge and the SUSE Enterprise version we have been using, our methods and implementation have been in need of a good update. After spending longer than I care to admit evaluating what was out there, I finally decided Ansible is where I wanted to start.
So far… Ansible is awesome.
I have only begun to scratch the surface, but I can definitely say I’ve been able to get much further and much deeper, MUCH faster than I ever did with Puppet. Now to be fair, my experience with Puppet certainly helped give me a good jump start, but I feel like its been much easier to get in and do things quicker with Ansible. Certainly the iteration process is many times faster.
There is a few reasons for that.
Its agentless. This is so awesome, and honestly probably was the single biggest reason for deciding to try Ansible. In the grand scheme of things, I admit, its not a huge deal. However, the fact that you don’t have to authorize and manage an agent on each server is just one more layer you don’t have to worry about, or troubleshoot. All you need is a relatively up-to-date version of Python (2.6), and SSH. Simple. Being agentless also implies another awesome feature…
Its serverless. No server to run on a centralized machine. You can run all your scripts from your own workstation… or ANY workstation for that matter. That’s two less things to worry about.
Developing with Vagrant. Now this isn’t part of Ansible itself of course, but we have been slowly working Vagrant into our workflow, and it is a huge help. I can run a complete copy of whatever server I’m currently working on and test, re-test, and test some more, very quickly. If I totally screw something up, all I have to do is delete the virtual machine and re-deploy it. All on my local machine. This speeds up things dramatically with out the worry or hassle of connecting to a remote machine.
One last thing I’d like to mention is that Ansible is now owned by Redhat. Now this may not be a big deal for some people, but I feel like its nice to have some backing by a longstanding, trusted company, especially when it comes to using new technology on production machines. So far it seems that Ansible has been left to do what they do best. We will see, but for now I see this as a nice bit of insurance that it will be around a while. This also coincides with our decision to move everything to CentOS 7.
That is all I’m going to go through at the moment. There are a million posts and articles out there on “Ansible vs.” whatever configuration management flavor you’d like if anyone is curious. I’m looking forward to how far and deep we can take our Ansible implementation, and hopefully I can share some more knowledge about it in the near future.
No comments yet.