www.mjhall.org

IT training resources & rants

View My GitHub Profile

Lab automation with Ansible

Ansible is a powerful scripted automation tool written in Python that simplifies the management of complex network environments including IT training labs, whether in the private or public cloud.

Ansible automates complex and/or repetitive tasks, and operations can be applied in parallel to entire suites of networked server and client machines. Tasks like operating system installation and configuration, server builds, updates, powering on/off/reboot, test machine deployments, data collection, practical lab assessments … the possibilities are almost endless.

Ansible belongs to a class of network-scale automation software that also includes offerings such as Puppet, Salt, Chef and CFEngine. It’s single biggest advantage over all these products is probably the fact that it is entirely agentless, meaning that no software at all needs to be installed on machines managed by Ansible.

All Ansible requires to manage any Unix machine (including VMWare ESX hosts) is that normal SSH infrastructure is in place. Remote agentless management of Windows machines is also supported using Windows PowerShell.

Ansible uses a simple plain text configuration layout known as YAML (YAML Ain’t Markup Language), a human-readable structured data format which enables the definition of powerful configuration settings without the need for complex configuration formats like XML or JSON.

An overview of How Ansible works.

Ansible is an open source project sponsored by RedHat and can be deployed at no cost whatsoever on CentOS Linux management machines (and no doubt many others). Although it is in wide use by leading enterprises including NASA, Juniper Networks, Cisco, HP, Rackspace and Apple, Ansible is simple enough to deploy and use that its use in Diploma and Cert IV TAFE labs is entirely feasible.

In addition to providing IT teachers and lab technicians with a powerful day-to-day management tool, Ansible could also prove very useful to students in a range of network-scale TAFE units including:

Given that all network installation and configuration options and operations are captured or accounted for, Ansible could be a valuable assessment tool. Ansible playbooks (integrated sets of instructions) can provide a plain text, human readable and 100% reproducible record of every step in a complex series of operations, and would be a very valuable addition to a student portfolio.

Ansible could also prove useful in a similar fashion for many system-scale units including for example:

To a lesser extent, Ansible could also prove useful in many Cert IV level units which involve system and network configuration:

Stay tuned for more Ansible news. I have been very impressed by early experimental deployments at SuniTAFE for tasks ranging from powering on/off multiple guests on multiple VMWare ESX hosts through to creating virtual machines, configuring DNS and installing and configuring servers at cloud provider Digital Ocean.

Finally, Ansible is one more example of how open source technologies can deliver powerful, exciting, cutting edge and industry-leading technology to the TAFE IT lab at absolutely zero cost! Ansible is exactly the kind of technology we would introduce our students to if we were oriented to the current and future needs of a global, cloud-based IT industry.