Ansible, z/OSMF, and ZOWE

Frank J. De Gilio
Theropod
Published in
6 min readDec 8, 2021

🖥 🖥 Throughout the entire modernization journey, z/OS provides numerous tools to handle your modernization needs in a reliable and productive manner. This set of tools has been developed to work efficiently together to attack this complex space rather than trying to rely on a single tool to try and handle all your needs. Some activities are replicated in each tool; at a minimum, each tool can create, read, write, and delete datasets, submit jobs, handle job output and other functions focused on managing z/OS resources. The fact that each tool can do this makes it seem like each could be the only tool you need to modernize your environment. However, using just one tool to try to accomplish everything will probably force you to jump through hoops when a simpler method is available. Instead, it makes more sense to use the tool that is best suited to do the job. Your modernization toolbox should employ as many varied tools as your home toolbox. Looking at the problems each tries to solve and their approach to solving them allows you to make informed decisions on the tools to use.

Different Tools for different Activities

The Tools

There are three main z/OS resource management tools:

1. z/OSMF — This is a management tool with a modern desktop, REST APIs, and workflows which can be employed to manage z/OS components. It is the underlying infrastructure for IBMs software distribution and z/OS instance provisioning models. There are several newly-updated z/OSMF zTrial modules that businesses can explore.

2. Zowe — Zowe is an open-source command line tool from the Open Mainframe Project, which runs off platform and provides z/OS capabilities in non z/OS environments, usually embedded within automation or devops tooling. This allows the off-platform tooling to connect to z/OS capabilities as well as 27 different vendor products. The Zowe Explorer extension with VSCode enables users to edit datasets, submit jobs, and issue TSO commands without having to use traditional 3270 tooling. Zowe also has a GUI desktop for users that want an experience similar to their workstation experience. Zowe takes advantage of several system capabilities including z/OSMF REST APIs, FTP, Remote System Explorer, as well as its own server environment.

3. Ansible/Python/ZOAU — Ansible automates managing multiple platforms primarily using SSH and Python modules to remotely access systems. For additional z/OS resource management activities, Ansible automation makes use of Open Enterprise Python for z/OS and the Z Open Automation Utilities (ZOAU). This environment can also be used to provide automation around existing z/OSMF REST APIs.

When to use what

Now that you have an idea of what each tool does, let’s talk about when to use each tool. Here is a sampling of goals and tasks with recommended tools for each of them.

Software Install

System Software installs, including middleware and most vendor products, on z/OS is clearly the purview of z/OSMF. It allows the creation of portable software instances that can link traditional z/OS components with z/OS UNIX components and provides a data center aware metadata repository for installed software. The install process may be instigated via Zowe or Ansible, but the heavy lifting will be accomplished by z/OSMF. Application installation, also known as application deployment, will rely on Ansible and Zowe.

Editing Datasets

The Zowe Explorer extension for VSCode provides a way to work with datasets, unix files, JES and TSO without requiring a 3270 emulator. This rich desktop experience works alongside other extensions such as file syntax checkers. There is a web browser based editor in z/OSMF that offers users the ability to open, create and edit datasets.

Desktop Experience

For users that want to work through a web browser, avoiding the need for any client software to be installed on their PCs, both z/OSMF and Zowe have deskops. The Zowe desktop is open source and has over a dozen vendor extensions covering areas such as profiling, performance management, DB2 administration and tuning and more. The z/OSMF Desktop can be used to work with core z/OS System Programmer tasks such as TCP/IP network configuration and workflow creation and execution.

Environment Provisioning

This is an area that can be confusing, especially as the environment evolves. The key component keeping track of provisioning is z/OSMF. It is already setup to keep track of meta data throughout the data center and keeps track of the tenants on the system. System provisioning will be the purview of z/OSMF with Ansible taking over the role of provisioning for middleware and subsystems. A great article about this can be found at: https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/travis-biro1/2021/11/18/provision-on-demand-part-3

Platform Automation Choices

Automating software installs and subsystem instantiation is only a small part of the myriad of tasks that a business will automate. The following describes when the different choices make sense. Goals become important here. Each solution’s approach to solving the problem is different, and your goals, skills and future direction will drive which path to take.

When Zowe makes sense

If your goal is to manage z/OS resources off platform, with the understanding of the z/OS context there then Zowe is the right tool. With the Zowe CLI, off-platform scripts need to understand z/OS nomenclature and rules. If you are looking to have a set of Unix scripts calling z/OS capabilities, this is the solution. Because Zowe is an open-source project, owned and managed by the Linux Foundation, it creates new releases every 6 weeks and can adapt quickly to requirements. Everyone is encouraged to contribute code for enhancements directly to the community rather than go through the traditional IBM Request For Enhancement (RFE) process.

When Ansible makes sense

If your goal is to create abstractions that allow z/OS to play in multiple platform management environments, then the Ansible/Python/ZOAU tooling makes sense. Using Python and ZOAU allows you to create a separation of concern where your z/OS knowledgeable people define the details and Ansible provides an easier interface. This reduces the Ansible playbook complexity while also giving sysprogs purview over the details in the execution of z/OS services, ensuring that z/OS and distributed components play in the same world without forcing z/OS knowledge into the Ansible execution space. Utilizing Ansible playbooks that rely on an abstracted set of functions on the platform makes it easier to move to a new tool in the future. By creating abstractions, this solution eliminates technical debt in your automation allowing you to future proof your automation tasks. Another benefit to this solution is that it is more recognizable to non z/OS users. Additionally, Ansible has a collection that allows users to take advantage of existing z/OSMF workflows.

When z/OSMF makes sense

Companies that have already invested in existing workflows will likely want to continue supporting and maintaining them. These will likely be easily augmented over time. Clients with existing workflows can get even more value by leveraging the ibm_zosmf Ansible collection to automate those workflows.

Solutions will not be so cut and dried

Ultimately each tool will become a powerful part of your environment. As each IT environment evolves a good solution will meld the power of each of these tools to achieve the goal. The important question of today is what goal do you want to accomplish? This will point you to pick the right tool for the job. Ultimately installations will incorporate all these tools as together they provide a more complete set of methodologies required to allow z/OS to become a full partner in today’s hybrid cloud architectures. Once these tools are integrated into IT environments, z/OS becomes less foreign to users who are unfamiliar with z/OS interfaces.

--

--

Frank J. De Gilio
Theropod
Editor for

Seasoned mainframer guy with delusions of grandeur