It was quite the week attending the VMworld 2015 conference in San Francisco, but all good things must come to an end at some point, and this event is no exception. During my time there, I have had several briefings from a variety of different companies on their technologies. Given my love and passion for automation, I wanted to introduce you to a company called “Ansible,” if you have not had the opportunity to hear about it before.
Ansible is an agentless and powerful open-source IT automation tool for cloud provisioning, management, deployment, and orchestration. This tool’s underlying scripting language is Python, and it works by pushing out “Ansible modules” to the target nodes. These modules are the building blocks of the automation. I consider them to be different steps or tasks of the automation workflow, although Ansible likes to refer to the workflows as “playbooks.” Ansible uses SSH by default to make the connection to the target node, so this is perfect for working with Linux servers out of the box. Ansible can pull inventory information from the likes of EC2, Rackspace, and OpenStack.
Although the modules are Python by default, you have the ability to create your own modules in the language of your choice as long as it can return JSON. That would open the door for JavaScript, Ruby, and Bash, to name a few. The inventory also has the ability to plug into any datasource by writing or creating your own API connection program or script to speak to the source as long as it returns the expected JSON type of reply. That being understood, although SSH is the default connection protocol, it is not the only method possible. If you can connect to an API, Ansible can use that connection to provide the automation desired.
That leaves a lot of possibility for Ansible, and as it is open source, it is free to download. Once you have had a chance to play with the Ansible technology and have gotten things to the point that you are ready to bring it into your enterprise and let other team members collaborate on the automation, note that Ansible has a program called “Ansible Tower.” This is a web app with full REST API that gives you the ability to control the technology, complete with a visual dashboard, role-based access control, and automation scheduling, as well as a graphical inventory management system. Using either the REST API or the CLI gives you the opportunity to actually embed Tower into other existing tools you may be already using in your environment.
I see a lot of possibilities with this technology. With a growing community to help back it, I am really curious to see just how far this technology could go. The base technology is available as open source and free—is there any better way to get the automation junkies like myself to download it and check things out? I don’t think so, and my download just finished: time to play and have some fun.