After all the reading about Ansible that I’ve done yesterday, I woke up today with a strong will to try it out. Running a few “hello world” examples wasn’t illustrative enough, so I decided to migrate my dotfiles repository from Puppet to Ansible. This would provide just enough complexity to try things out, without any danger of breaking things horribly.
I’m proud to say that it took me only about two-three hours of trying things out to complete this task. In the process, the following things were tried:
- Ansible best practices
- Playbooks (site.yml)
- Roles (dotfiles, fonts, vim, git)
- Tasks (file system operations, package installation, git repositories)
- Tags (I’m using files, packages, network)
- Loops (file globs, ad hoc items, pre-defined lists)
- Filters (basename is super handy)
- Inventories (mostly for variables, but played around with hosts too)
- Variables (lists definitions for tasks, variables for templates)
- Templates (.gitconfig with the user name, email, and GitHub username).
One of the things that I haven’t tried yet is using non-core modules (Ansible Galaxy, etc). I will, eventually. But for now I have to say that Ansible provides enough functionality out of the box to run the most common tasks.
When I was done, the resulting change set had (according to diffstat):
- 213 files changed,
- 2,177 lines inserted,
- 11,975 lines deleted.
The majority of these changes were, of course, the removal of Puppet modules from the repository, not the actual configurations.
My initial impressions are:
- Ansible is indeed much easier and simpler to get started with. Maybe because I’ve already been through the configuration management initiation with Puppet.
- Like any other system, it has its quirks, which will need time to get used to. For example, recursively coping a directory locally is not as easy as you might think.
- YAML is not as bad as it looks, once you’ve been editing it for a couple of hours non-stop.
Overall, I’m pretty happy with how it goes. Next up – trying it out for provisioning some of my servers. And then, if all goes well, using it for project deployment as well.
It’s Thursday evening of a particularly difficult week at work. Tomorrow is a public holiday, effectively making this – a Friday. My brain is blank and exhausted, so I can’t do anything productive. And I’m too tired to go out. But I can still learn a thing or two.
First things first – cancel the external noise. I want something loud, but not too intensive, and with no words in it. So this 2 hour blues instrumental collection comes in handy. Start the playback, put the headphones on, and push the volume up.
Now. Here’s something I wanted to look into for quite some time – Ansible configuration manager.
Continue reading “Checking out Ansible. Sorry Puppet”
Linux Weekly News reports that Red Hat acquires Ansible. There are quite a few configuration management tools around, and it was only the matter of time until Red Hat, with all its corporate client base, would buy one. Or pledge allegiance. My personal preference would be in Puppet, but Puppet comes from the Ruby world, where’s Red Hat is more of a Python shop.
Ansible’s simple and agentless approach, unlike competing solutions, does not require any special coding skills, removing some of the most significant barriers to automation across IT. From deployment and configuration to rolling upgrades, by adding Ansible to its hybrid management portfolio, Red Hat will help customers to:
- Deploy and manage applications across private and public clouds.
- Speed service delivery through DevOps initiatives.
- Streamline OpenStack installations and upgrades.
- Accelerate container adoption by simplifying orchestration and configuration.
The upstream Ansible project is one of the most popular open source automation projects on GitHub with an active and highly engaged community, encompassing nearly 1,200 contributors. Ansible automation is being used by a growing number of Fortune 100 companies, powering large and complex private cloud environments, and the company has received several notable accolades, including a 2015 InfoWorld Bossie Award, recognizing the best open source datacenter and cloud software.
Regardless, though, of my personal preferences, these are good news for configuration management and automation.