As we're midway through the Ansible 1.2 development cycle, I wanted to share a bit of an update about all the exciting things that have been going on with Ansible lately.
Core Language Features
One of the major things we added in 1.2 were roles, which are a great way to organize and reuse content. Roles help simplify playbooks and allow you to reduce a lot of boilerplate in applying instructions to hosts.
Another thing we did is allow the same variable system (Jinja2) to be used in both playbooks and templates -- which simplifies how much you have to keep in your head about how variables work. Long time coming! Addtionally, we've added some small but useful features along the way -- the ability to re-run a playbook against just the hosts that failed is one of those things. Loop expressions are also simplified, as you can just list the variable name you wish to loop over. You can read all about these things in the 1.2 documentation
We've also added a "pre_tasks" and "post_tasks" block, which makes it even more trivial to script complex operations like rolling updates. Rolling updates are one of the things Ansible does best, and I'm happy to see them get even easier.
However, the thing I'm most happy about is a great amount of community contributed modules.
The thing that makes Ansible really special is it's a general purpose orchestration engine -- useful for software deployment and OS configuration, but also modelling some really complex multi-tier IT operations. 1.2 is adding lots of things that really improve those capabilities, and you'll note very few of the new modules have anything to do with OS configuration. Most new modules deal with network services, load balancing, cloud, and team workflow.
In 1.2, Ansible users from all over have contributed modules for working with F5 load balancers as well as EC2 Elastic Load Balancers, which complement existing abilities to work with Netscalers and HAProxy.
Notification modules have also become a major theme, with most showing up just in the last week! While Ansible has been pluggable to allow you to store data or talk to anything in the past, that requires writing code. What if you want to send a simple chat message before your servers go down, or when they get finished? A great new series of notifcation modules allow all kinds of notifications like this for your team. Let Ansible talk to you, and remind your team members about what is happening on your infrastructure. There's already support for Atlassian's Hipchat, Flowdock, 37 Signals's Campfire, IRC, Jabber, and even low level message bus operations over mqtt (Mosquito). I even pitched in and added one called "OS X say", which allows your OS X computers to talk to you during your playbook runs. We had something like that previously as a callback module, this makes it available for arbitrary messages during playbooks as well.
There's been a lot of other modules of interest too -- there's a new module for Rackspace Cloud provisioning, Node.js package management, a filesystem wrapper around mkfs, and support for FreeBSD's "PackageNG"
But Wait, There's More!
Even modules aren't all of it though -- the changelog calls out over 50 new parameters to various modules and various bug fixes/improvements!
1.2 is scheduled to release in a little over a month, though if you're willing to live a little on the edge, you can try it out now and help test things. I suspect we'll have a lot more new modules and features before the release.
Thanks everyone for making this possible and such an exciting project to work on. I say that a lot, but it's extremely true. I'm watching traffic light up (and pull requests come in) from all over the globe -- the North, South, and Central America, Europe, Asia, Australia, etc, and it feels great to get everyone together and building new ways to orchestrate our IT infrastructure and services.
And Now For A Word From Our ...
If you want to get a sneak peak at things new in 1.2 (like roles), you can join us for a free "Quick Start" session online. Sign up here
Also, while we've definitely shared this with the mailing list a few times, you may wish to attend AnsibleFest, which is a one-day conference we're having this June 13th in Boston. It's going to be a great time. Look for more AnsibleFest to move around a bit next year, so if you can't make it Boston, hopefully we'll make it to your neck of the woods soon :)
Later everyone! You'll be hearing more from me closer to the 1.2 release and AnsibleFest!