Ansible Settles into Red Hat, Debuts No-Wait Scheduling
Keeping to its timetable, Red Hat on Tuesday released a reworked Ansible 2.0 that offers improved exception handling and updated modules for Docker, OpenStack and Windows.
“This release has been a long time coming,” said Tim Cramer, senior director of Ansible Engineering at Red Hat. “We basically have rewritten a bunch of the core engine. There was a lot of technical debt involved in cleaning up Ansible and having it catch up to what people were using it for so it’s more maintainable and expandable.”
Red Hat acquired the automation and configuration framework for an estimated $150 million in October. It said then that the 2.0 release would remain on schedule.
“We’ve been pretty careful and very conscious that we are rewriting the core engine of this, so we’re continuing to bug-fix the 1.9 version while the 2.0 version is out,” Cramer said. “We’ll maintain both of those as people switch over, because we don’t expect everyone to switch over right out of the gate.”
One of the most notable improvements is that software now relieves some of the constraints on how updates can be rolled out across a system.
“The traditional execution strategy was a linear one, so you’d wait for all the hosts to complete all the tasks before you continue, so you have something like ‘update all these servers, then install a web server on them.’ The traditional way is to update the servers – and let’s say there’s 10 of them and 9 of them are already up to date and the 10th one needs to do a whole bunch of updates – you wait for that 10th host to complete its tasks before you move on to the next task,” Cramer explained.
“We now have something called a free strategy, which allows each host to process tasks as fast as possible without having to wait on other hosts. So now those nine servers can get the Web server installed immediately and the 10th one is going to go at its own pace. That’s really going to help with speed in your data center if you have things that are messy or you want to add a server into the mix and you’re waiting around for that one to get caught up,” he said.
Other improvements include:
- Improved error messages: “Sometimes with a playbook, you’ll wind up with an error and you can’t tell what happened. We’ve improved the error messages so it’ll show up with the line or column where the error occurred, just to make it easier to debug it if there’s a problem with the playbook you wrote,” he said.
- Task blocks: “This is a way you can carve out a block of your playbook, and you can use that as a method of catching errors and execute a set of tasks, regardless of whether the exception occurred or not. It has a the try/except/finally structure [from Python]. It’s a way for you to very concisely try something out, then catch an error in it.”
- Modules for OpenStack, Docker, Windows: Ansible 2.0 a has more than 200 new modules including new or expanded modules for OpenStack, Amazon Web Services and VMware environments. It also boasts substantial improvements to the Docker module and new Docker connection plugin. Most of the new modules have been community contributions, however, Cramer said, “We’ve done a bunch of work on the Windows modules. Now have dedicated resources on those at Ansible. We’re seeing so much push on the Windows side, we’ve put our own resources on that to speed those modules up.”
“We’ve had a lot of community testing of 2.0, so we’re pretty confident about it,” he said. “We’re almost 100 percent backwards compatible — there are a couple of little things, like variable precedents in Ansible have not been defined until now. So we’ve defined it and noted it. It just kind of varied during the 1.x timeframes. There a few things like that if they’re moving from a 1.7 to 2.0, they could see slight differences.”
Ansible 2.0 is available via GitHub, PyPi, and package manager for most major Linux distributions.
Cramer, who has gone through acquisitions previously at Sun Microsystems and Hewlett-Packard, said the Red Hat acquisition of Ansible has been “unbelievably good.”
“We don’t have a lot of overlap with other parts of the business, so there are no battles. We’re coming in, it’s a great fit, it fills a need they really had,” he said. “Red Hat has come in and just tried to accelerate the product. We’re looking at all sorts of integrations, we’re looking at open sourcing Tower, but we don’t have any big mandates for changing the way we do things. On the engineering side, they’re basically doubling the group.”
VMware and Docker integrations are on the roadmap for future releases. Because it has a backlog, it will be revisiting its review process for the submission of modules, Greg DeKoenigsberg, director of community for Ansible at Red Hat, has said.
And a full-time person has been hired to work on networking issues.
“Soon after 2.0 comes out, we’ll be talking about network functionality, what modules are going to exist there, and how we think that can be a game changer for a lot of folks in that space who haven’t had the chance to create DevOps-y processes in the networking world,” DeKoenigsberg told SDTimes.
Docker, Red Hat and VMware are sponsors of The New Stack.
Feature Image: “marble rube Goldberg” by Mark Chandler, licensed under CC BY-SA 2.0.