The Eye-Opening Value of Open Source on z/OS

At the recent GSUK conference, PopUp Mainframe presented a session on some of the most useful open-source tools we are using in our lab. Here’s a recap of the information we shared.

Our Journey With Open-Source Technology

Aiming to improve productivity, over the past year the team at PopUp Mainframe has embraced open-source tooling. Open source has been harnessed within the PopUp development team, helping us implement faster approaches, streamline our build process, and automate countless tasks. We have seen wide-ranging and sometimes surprising benefits of using open source with z/OS and now rely on open-source tools to develop, build, and test PopUp Mainframe product features. And, with customers requesting open-source options for their PopUps, we also share best practice to help them get the most from these resources.

In short, open source is important to us. Here, we outline the open-source tools we are leveraging, and the benefits.

ZTI (Z Terminal Interface)

ZTI is a Python application which gives you a full 3270 interface in your command prompt. It removes the need for a separate (commercial) TSO terminal emulator product, while giving you nearly the same green screen experience. ZTI is great for anyone without a TSO emulator, but it has a whole host of other capabilities too.

ZTI enables you to interact with z/OS through command line – running commands, connecting to the master console, and more. This is powerful because you can script these interactions and include them in applications or automation. We are using ZTI in our team to run z/OS commands and utilising it for master console management too.

CBT Tape

CBT Tape is a library of free software for the IBM mainframe MVS, OS/390, and z/OS environments. It has evolved over decades and continues to expand. Useful CBT Tape facilities we have recently leveraged include –

  • SHOWZOS – makes MVS control information displayable, such as OS info, software and storage config. This can be web-enabled too.
  • WHOSON – shows you who else is logged on to TSO at any time.
  • Xmit Manager – enables you to view the contents of xmit files on a laptop, without having to copy it onto a z/OS system first.

ZOPEN Community

The Zopen community offers a range of tools which have been ported onto Z to help make Unix System Services (USS) easier to use. The more like Linux USS becomes, the better, as it makes USS easier to use for mainframers, as well as making the mainframe world more familiar and “standardised” and therefore easier to develop and maintain by anyone. There are around 300 tools in the zopen community.

Ten of the zopen tools are officially supported by IBM and distributed free-of-charge with the IBM Open Enterprise Foundation kit. These are all available pre-installed on our product. A couple of examples –

  • Vim: While the Vi editor is available on USS, it’s not very user friendly, and now zopen gives us vim instead. The vim text editor reduces the learning curve for a non-mainframer to be able to make changes very simply.
  • Bash: The popular Bash shell gives much more functionality than the Bourne shell (the default on USS), such as auto-completion, which saves a lot of time and makes for a more rewarding coding experience.

While these may seem like small benefits, they do add up and can be the difference between a useable, productive interface, and a frustrating interface which continually slows you down.

Zowe

There are two main components of Zowe which we are actively using in our team: Zowe CLI and Zowe Explorer (a VSCode extension).

Zowe Command Line Interface (CLI)

Zowe CLI enables you to interact with the mainframe remotely and use common tools such as shell commands, bash scripts and build tools for mainframe development. It provides a core set of commands for working with datasets, USS, JES, as well as issuing TSO and console commands. It has a very small learning curve since it provides user-friendly help, giving you all options so you can get started without being an expert. By contrast, TSO commands are very brittle and not user friendly, particularly for someone who doesn’t have a mainframe background.

The Zowe CLI is very extensible too, and there are many plugins available which can be used easily by a non-mainframer, and new features are being released all the time.

Zowe Explorer

Zowe Explorer is an extension for VSCode which allows you to interact with your mainframe LPARs through VSCode. Once you are connected, you can view and interact with datasets, USS and jobs through your IDE. Zowe Explorer in VSCode allows you to ‘find’ objects simply, something which is not simple in ISPF. It also enables viewing of multiple z/OS environments at once, and the compare feature is very useful.

CI/CD Pipelines

We have built CI/CD pipelines to deliver mainframe changes, and we have seen the benefits of robust, reliable, and accelerated build, test, and deployment of code changes. One of our CI/CD pipelines looks like this –

  • The pipeline is orchestrated by GitHub Actions, and is triggered when code is checked in to GitHub
  • Build is performed using IBM DBB (which is not open source)
  • Unit testing is performed using open-source Galasa and COBOL Check
  • Artifactory is used to store the binaries
  • IBM Wazi Deploy (not open source) deploys the code to the target environment
  • For integration testing, we are using Galasa again, this time with Selenium, for end-to-end testing of the mainframe application.

Observability

We have built a mainframe observability solution using Prometheus and Grafana. This has saved us countless hours finding info and troubleshooting and is now a one-stop shop for the team to self-service information. Some dashboards we have built:

  • A near real-time list of which z/OS environments we have. With PopUps being so quick and easy to stand up, we create new environments and tear them down often. We now have ready access to the full list of PopUps and other VMs, and their status, including which version of z/OS is running, the status of z/OS, a view of some subsystems on each environment, backup details, and more.
  • License information is now available in one place with expiry dates and number of available licenses clearly visible and trustworthy.
  • A report to show the usage of DASD volumes, highlighting which ones have usage over a threshold. This helps us manage our lab more proactively instead of waiting for a problem to occur.

We continue to expand our portfolio of dashboards and it is paying dividends for us. The dashboards are also available for PopUp customers and gives them observability out-of-the-box.

Ansible

We also make extensive use of Ansible in our lab – and within our core product. We have built numerous playbooks to manage z/OS environments, including config, software installation, maintenance, and user management. For more details see here.

Where next?

Mainframe innovation is driven by growing demand and fresh ideas from both end-user organisations, vendors, and the wider community. The Open Mainframe Project and other open-source efforts are delivering valuable technologies, and we’re excited about making the most of these advancements and bringing them to our customers through the PopUp Mainframe product.

Automating the Heck Out of Every LPAR – with Ansible

In today’s enterprise IT landscape, automation and operational efficiency have become a fundamental strategic imperative. At the GSUK conference, the PopUp Mainframe session entitled “Automate the Heck Out of Every LPAR” showcased how automation, particularly using Ansible, is transforming mainframe operations.

Here’s a summary of our discussion.

Why Automation Matters

At the heart of the story, the strategic value of automation sits across three pillars: operational efficiency, customer value, and innovation. For PopUp Mainframe, automation aims to enable scalable, repeatable processes that improve both our internal lab management and customer-facing features and services.

Ansible as the Automation Engine

We presented Ansible as the cornerstone of our automation strategy. It is quickly emerging as a de-facto industry standard to support automating mundane tasks. Its simplicity, powerful z/OS modules, and alignment with industry standards make it an ideal choice for a variety of use-cases. Additionally, Ansible’s marketplace and ease of learning have helped the PopUp Mainframe team quickly understand, devise, build, and deploy our own automation solutions.

Overcoming Technical Challenges

Of course, implementing new technology is never a totally flawless exercise, and adopting Ansible in the PopUp lab wasn’t without its own hurdles. The team encountered issues with VM inconsistencies, z/OS versioning, and password management. These challenges were met with a robust architecture that included GitHub integration, secrets management via IBM Cloud Secrets Manager, and a centralized Ansible control node. Establishing a more robust approach to Ansible implementation needed some thought, but in the end gave us the solid foundation we needed.

Architecture in Action: PopUp Playbooks

The architecture spans both virtual and physical mainframes. Ansible Playbook source code is stored in GitHub, provides playbooks which can be executed remotely against any z/OS environment, and secured with secrets management. This setup ensures flexibility and security while maintaining control over deployments.

The PopUp Mainframe product includes a broad range of Ansible playbooks to help users and product administrators simply and accelerate routine tasks. Our playbook library covers the following areas, all intended to streamline and simplify the administration of the PopUp virtualized z/OS environment –

  • z/OS health checks
  • Configuration and user management
  • Maintenance routines
  • Software installation

These examples illustrate how automation can handle routine tasks reliably and consistently, and are just the start of our journey. We are constantly adding new playbooks to the product, which we will continue to share with our customers.

Automation Outcomes

The team’s reflections on their journey underscored significant improvements: increased standardisation, documentation of expert knowledge in code, and notable gains in operational speed. These outcomes not only streamlined routine procedures but also laid the groundwork for ongoing innovation and efficiency across the mainframe environment.

Improved standardization, codified knowledge, and speed improvements were all tangible outcomes of our automation journey and, with the resulting Playbooks now provided with the product, we’re delighted to provide the same benefits to our customers.

Tips for Implementation

Reflecting on our own journey towards automation using Ansible, for teams looking to adopt the technology, we would offer the following practical advice:

  • Leverage the Ansible community. There is a wide variety of support out there if you know where to look, including monthly Ansible community guild calls, an active Discord channel, blogs, LinkedIn groups, forums, and more.
  • Get team buy-in early. We ran hands-on playbook sessions where all team members were invited to login and run some playbooks. They quickly realised how easy it was!
  • Define standards (for example using Ansible lint) and write clear README files – this is critical to ensure the playbooks can be run without specific technical knowledge which is key to democratising access to z/OS.

Additionally, determining the right way to measure that progress helps build a tangible aspect to the journey that you can record, report and use to justify further steps.

Looking Ahead

Strategically, the path of continuous operational improvements is never complete.  So, for our Ansible implementation, our future plans include:

  • Better tracking of playbook validation
  • Building additional custom playbooks for specific use cases
  • Making playbooks available to customers via AAP (Ansible Automation Platform)
  • Exploring event-driven automation

Here’s a previous article about the earlier steps in our Ansible journey. For more information on the PopUp Mainframe product, go here.