Ansible for IBM Z - Group home

Additions and enhancements to IBM z/OS core collection you don't want to miss!

  

Ansible is the strategic platform solution for automation, from provisioning and configuration through application deployment use cases. We often hear that our clients today are facing a lot of challenges with the complexities of hybrid multicloud deployments, and they’re looking for widely adopted automation solutions to help solve their challenges. 

IBM Z has been around for 50+ years, and along with its rich history comes a lot of heavy investment. We are investing in Ansible because of its flexibility, consistency, and simplicity. Ansible's flexibility allows you to not just use Ansible and our content to interact directly with z/OS, but also leverage and bring your existing investments such as JCL, System Automation, and z/OS Management Facility into Ansible. Ansible also allows you to integrate z/OS into your enterprise automation strategy in a consistent manner and provides you with additional transparency through its SCM traceability and a centralized management plane for your IT infrastructure. Tying it all together is our Red Hat Ansible Certified Content for IBM Z, which provides IBM Z tailored collections in the form of roles and modules that abstract much of the specific z/OS knowledge and complexities to simplify your interaction with z/OS. 


IBM z/OS core collection v1.2.0-beta.1

A little while ago we announced the release of IBM z/OS core collection to Ansible Automation Hub with new modules to enhance the automation experience brought you by the Red Hat Ansible Certified Content for IBM Z. We are back with the introduction of several additional modules to better help our clients with their IBM Z modernization efforts.  

 

The IBM z/OS core collection v1.2.0-beta.1 has added three new IBM z/OS core modules in Ansible Galaxy: zos_mvs_rawzos_lineinfile, and zos_copy. Part of our goal here is to ensure that we can reproduce the same capabilities in z/OS in a more modern way through Ansible. In this release, zos_mvs_raw allows a user to interact with  z/OS and z/OS programs without having to manually edit and configure JCLs. In the event that JCL is still needed, you can leverage zos_job_submit with zos_lineinfile to bring an additional level of versatility. Assume you have JCL that has been coded specifically to a system. The addition of zos_lineinfile will allow you to change the system parameters on-the-fly, removing the need to create additional, but similar, JCLs. Lastly, we have zos_copy to complete the basic file transfer capabilities previously introduced by zos_fetch.

 

Job Control Language (JCL) is one of the main ways to control the operation of jobs within z/OS. JCL provides the capability to tell z/OS where to find the appropriate input, how to process that input, and what to do with the resulting output when a job is submitted. The zos_mvs_raw module was created to simplify this process for the modern developer. Instead of having to craft static JOB statements, manually submit and retrieve job inputs and output, or even interface through JCL,  the developer can use zos_mvs_raw to execute and retrieve the output in one step. This might not seem like much when you're dealing with one JCL, but imagine if you had to run the JCL across 100s of systems, each with specific resource parameters. The zos_mvs_raw modules simplifies that down in to a single step and, in conjunction with Ansible, allows you to propagate the same job across 100s of systems in one command.

 

In addition, zos_mvs_raw also incorporates some additional intelligence to allow for idempotency. Suppose your JCL included a step that required the creation of a directory, but that directory already exists on some of your systems. Where the JCL step would fail, zos_mvs_raw would understand that the directory already exists and would use that instead of creating a new one.  

 

The zos_lineinfile helps you better manage the textual content of z/OS by providing you the ability to find and replace an existing line in a data set, member, or USS file. This becomes useful in the context of configuration management. Suppose you are asked to configure a new z/OS system. This procedure typically includes modifying or creating additional JCL to perform a set of steps including the creation and mounting of file systems, and completing and verifying configurations. Let's keep it simple and assume that you are asked to create several custom mount point directories. This will probably require you to manually modify each JCL to reflect the new mount point directory paths. The addition of zos_lineinfile allows you to quickly search and replace all your high level qualifiers and directories without ever having to log in to z/OS, thus simplifying and streamlining your configuration management. 

 

The zos_copy module facilitates copying z/OS files or data sets from the controller to the managed node. You may remember that in one of our previous releases we introduced zos_fetch, which enabled fetching files or data sets from remote locations to the local machine but did not support copying from a local machine to remote, or remote to remote. With zos_copy, you can now return the fetched and edited files back to z/OS, along with copying z/OS binaries such as IBM Open Enterprise Python's PAX file for DIY installs or even providing updated dependencies and patches for configuration management.

 

We hope you enjoyed hearing about our new additions and will now go give them a try. Stay tuned for more updates as we continue to enhance and expand Ansible capabilities for IBM Z.


 

Supporting Links: