Understanding Ansible Modules & How They Enhance IBM Power Systems

Understanding Ansible Modules & How They Enhance IBM Power Systems

When a news story or trend piece discusses automation, the focus is often on robots and advanced artificial intelligence (AI), and more specifically their potential to perform tasks done by humans. But a large portion of all business-critical automation is not nearly as dramatic or sci-fi-esque as those examples, instead being carried out under the hood of critical IT systems by frameworks like Red Hat Ansible.

What is Red Hat Ansible?

Created in 2012 and then acquired by Red Hat in 2015, Ansible is open source automation technology designed to simplify critical IT tasks such as configuration management, virtual machine (VM) provisioning, security automation and application deployment. It’s very easy to install and use, with compatibility across Microsoft Windows, Linux and Unix-like operating systems — including IBM Power Systems (AIX, IBM i and Linux on Power) via a 2020 update. 

Ansible saved enterprises an average of more than $1 million per year and helped them realize a similar amount of additional revenue, according to a 2019 IDC white paper. Ansible made these organizations’ IT infrastructure management teams 68% more productive, while reducing their unplanned downtime by more than half.

Ansible accomplishes all of this without adding overhead. It’s meant to be lightweight — to the point that you shouldn’t have to think about its presence at all — but powerful, with the ability to support complex automation workflows. To achieve that balance, Ansible leverages fundamental transport mechanisms such as SSH and Windows Remote Management (WinRM) to send Ansible modules (i.e., programs containing built-in arguments) to nodes. A module may control virtually anything, from a file to a service, and it may be executed directly by the remote host or via an Ansible Playbook (more on that later).

How do Red Hat Ansible modules work?

Modules are stored in a temporary directory on the remote machine and removed as they are executed. They return JSON to the Ansible control node. 

Crucially, modules are not just simple commands or scripts but intelligent ways of managing idempotent resources. That means that if a single run of a module puts a machine in its desired state, then any subsequent runs of the same module won’t alter that state. In other words, Ansible modules “know” not to fix something that isn’t broken. 

The Ansible architecture for transporting and managing modules is agentless. Accordingly, there is no special software to install and you don’t have to “manage the management.” Ansible also has no custom file server configuration. Because it communicates using standards like SSH and WinRM that are already built into the operating system, there is no need to worry about complications such as agents and servers being incompatible, or a specialized server agent crashing and bringing down the whole system.

Overall, modules are handled by the Ansible architecture, which has several main components:

Ansible endpoints 

These are the operating systems on which Ansible modules run, and they may include IBM Power Systems plus Windows, IBM z/OS, and others.

Ansible Engine 

This serves as the control node. It’s where Ansible is installed, as well as where Ansible playbooks run. 

A playbook is a set of instructions for executing Ansible functions for configuration, orchestration, and more. The Ansible community has provided the following helpful metaphor for understanding how playbooks relate to modules: If modules are like tools in a workshop, then playbooks are like instruction manuals. Meanwhile, host machines are the raw materials that are being shaped, in this case by the automation instructions provided by playbooks and carried out by modules.

Ansible Tower

This is the GUI for scaling and operating Ansible modules and playbooks. It includes dashboards for visualizing Ansible automation tasks and allows administrators to control role-based access, too. Tower offers a convenient web-based interface, REST API, and task engine.

Ansible Automation Analytics

These let you take the pulse of your current automation strategy, with statistics and visualizations on Ansible tasks within IBM Power Systems and other platforms.

Ansible Content Collections and Automation Hub 

These resources allow Ansible users to quickly get started with precomposed modules and roles built by experienced partners. Organizations may build their own Ansible content as well, but using existing code saves time and often addresses many of the most common Ansible use cases.

For IBM Power Systems, there are already many such pre-built modules available in the wake of Ansible arriving on the platform in 2020. Let’s look at what you can do with these modules.

Using Ansible Modules on IBM Power Systems

IBM Power Systems provide a reliable foundation for running mission-critical workloads, including those related to AI and high-performance computing. These platforms are often used within a hybrid cloud environment, which increases operational complexity and demands as much consistency and agility as possible, to avoid downtime and lost productivity. This is where Ansible comes in.

Ansible enables DevOps automation across IBM Power Systems. For example, let’s say you are already using Ansible as part of your enterprise-wide automation strategy and want to add in Power Systems inventory alongside x86 inventory, for one convenient automation user experience. Using Ansible, you could provision some IBM AIX VMs for your on-premises environment via PowerVC, or do the same for your public cloud environment via IBM Cloud. Ansible makes either process straightforward and standardized, based on already existing Ansible modules.

But Ansible’s utility does not stop at provisioning. Beyond that, it can, for instance, be used to connect a selected set of AIX hosts to the Service Update Management Assistant playbook, to automatically download fixes from a distribution site instead of making admins do the same task manually. 

On IBM i, similar functionality is available. Ansible may be used to install the latest version of Node.js, deploy Node.js applications and apply patches. All of these playbook tasks and calls to specific modules are detailed in real-time for maximum visibility.

Interested in learning more about how to use Red Hat Ansible on IBM Power Systems? InfoSystems is a Red Hat Advanced Business Partner in North America and an IBM Platinum Business Partner as well. Learn more by connecting with our team.

Leave a reply

Your email address will not be published. Required fields are marked *