Ansible for IBM Z - Group home

How an IBM Intern is Automating on z/OS with No Z Experience

  

Ansible.pngAs new hires come onto the Z platform, there are many challenges that await them. One of them is the wealth of information there is to learn when it comes to the mainframe. With most universities not providing mainframe specific courses, the onus is on the new hire to quickly develop skills in order to begin contributing. Another challenge is familiarizing yourself with the tools and methods required to interact with z/OS. Across different panels, interfaces, commands, languages and more, being able to interact with multiple z/OS subsystems takes a lot of training. What Z needed was a simple, flexible, and consistent automation platform, and IBM and Red Hat delivered. 

From the Statement of direction: IBM intends to deliver Ansible Collections for z/OS

IBM Z, the enterprise platform for mission-critical applications, and Red Hat, the leading provider of enterprise open source solutions, intend to deliver support for using Red Hat Ansible Automation Platform with IBM Z. Specifically, IBM intends to deliver Ansible Collections for z/OS, which is a set of Ansible content (for example, playbooks, roles, modules, and plug-ins) designed to be easily consumable and to help accelerate your usage of Red Hat Ansible Automation Platform with IBM Z.

Red Hat Ansible is a simple and universal IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs. Leveraging an easily understandable YAML syntax, Ansible allows you to manage multiple systems at the same time. This means that not only can Ansible help with onboarding and skills on z/OS, but it also allows you to manage z/OS systems as any node in your IT environment. If you have multiple architectures and operating systems present in your infrastructure, Ansible can help provide a single method of automation and management across them all. 

What follows is an incredible example of how Ansible can be beneficial to the "New to Z" community, as well as non Z employees. I asked Alex Diss, an intern with the IBM Z Platform Evaluation Test(zPET) organization questions about his experience in his internship, as well as how Ansible helped him become effective and helpful on Z for his organization. Alex had an incredible experience with Ansible and IBM, which he shared in his interview:

"Ansible has allowed me to fully automate a service process for IBM zPET, meaning there's now near-zero downtime when this service is needed. Minimizing downtime is essential when considering that the IBM zPET team runs workloads 24/7." - Alex Diss

The following is the result of more questions asked in this interview, providing you the perspective and insight of a next generation Z employee's experience when they have the ability to leverage open and platform-neutral tools. 

Alex-smaller.jpg

Who is Alex Diss?

Recently Alex Diss started with IBM as an intern. Alex is going into his senior year of college at the Ohio State University. Alex is majoring in Computer & Information Science and Economics, with a specialization in database systems. His internship began with the zPET team out of IBM Poughkeepsie.  Z Platform Evaluation Test (zPET) serves as a customer-like testbed for IBM z/OS software and IBM Z hardware. zPET is the final verification of the latest z/OS software, middleware, and hardware before it reaches IBM's customers. They perform the verification by running workloads 24x7 that mirrors the very things IBM's clients do everyday, while also maintaining availability, reliability, and serviceability. Their application programmers are constantly updating these workloads to integrate new z/OS features and products, while the environment is being maintained by experts across the software and hardware stack. 

I initially asked Alex about how his internship came to be, and the overall experiences the internship presenting for his early career:

Dan Jast - How did you come to be recruited to IBM? 
Alex Diss - I went through the standard intern hiring process beginning last fall. This has been my first internship with IBM (or any major company), so I was excited from the beginning to get to do something real.

Dan - What was your understanding of z/OS and Mainframe before your internship? Did this raise any concerns?
Alex - Prior to my internship I hadn't heard about z/OS. My understanding of Mainframe is probably the same as most tech-literate people my age, namely bulk-processing, but without specific knowledge or relation to z/OS. This wasn't a concern to me, as I was sure my team wouldn't force me into anything crazy, or put me on a project that I couldn't handle at that level.

Dan - At a high level, what types of tasks did you automate for the zPET team?
Alex - My main project involved performing a driver build for z/OS Connect and then installing that onto our z/OS systems. On the z/OS side of things this entailed submitting JCL jobs, reading/editing/copying certain datasets, and running some TSO & USS commands.

Alex automated the task he mentioned above leveraging Ansible content for IBM Z. This helped accelerate the process of that driver build and other tasks zPET was looking to automate from months of time spent on manual tasks to weeks on automated ones. 

In addition to the work Alex was assigned, zPET have adopted Ansible as a key tool in their processes. They have started using Ansible to apply service to their products. This includes getting the new builds, filesystem management, job and address space execution, and basic verifications with shell commands and web page checks. These are tasks that anyone can leverage the z/OS Core collection to automate today. Some other areas that zPET is looking to leverage Ansible for include:

  • provisioning a zCX instance
  • pulling down an appropriate JupyterHub image
  • create a container running JupyterHub that is configuring to authenticate with our RACF LDAP
  • automatically pulling down Jupyter notebooks from a repository
  • running Jupyter notebooks to query z/OS data. Notebooks will query data through IzODA or Data Privacy Passports

Dan - What did you learn in your internship that you plan on carrying forward in your career?
Alex - Before my internship started, one thing I was looking forward to most was learning about and becoming a part of corporate culture. Unfortunately remote-working due to Covid was a bit of an obstacle there, but being a part of a large team and working with my smaller team gave me a good feel for it. I definitely feel much more prepared for my future career in that sense. On the other end of things, of course I'm now much more familiar with many specific tools like Ansible and Jenkins, as well as the ideas their use has brought forward. Putting these two ends together, I think I've most learned how problems are solved in this type of environment, and I'm glad to say it's an enjoyable medium.

How did Ansible help in your experience with Z and IBM?

Continuing further in my discussion with Alex, I asked him questions about the role Ansible played in his internship and experiences with Z and IBM. 

Dan - What was your understanding of Ansible before your internship?
Alex - I hadn't heard of it. My first few days after being introduced to it were spent just trying to understand what Ansible was and how it would be useful for the project, before even learning about specific functions.

Dan - Why and how did you decide Ansible was the right tool for the assigned tasks?
Alex - Ansible was already being used for similar projects, and so in preparing the project specifications it was just given to me. That said, in hindsight I can say Ansible was definitely the right tool for the job.

Dan - How long did you initially think it was going to take you to get up and running with Ansible?  Did your experience match your expectations?
Alex - At the start, since I had no experience or knowledge of Ansible, I really had no expectation. But by the time I had gotten to that level of judgment, I already was up and running. It was a very smooth process.

Dan - After having everything in place, how did you go about developing and running your first playbook? Where did you struggle? 
Alex - Once I was familiarized, development of my first playbooks was simple and straightforward. I think I struggled more with preparation steps (like environment setup, directory trees, exact formatting) than with the actual development and writing of playbooks.

Dan - How did you go about getting familiar with Ansible if you did not have experience?
Alex - At first I made myself something of a sandbox and just toyed around with different modules. The Ansible modules' documentation is fairly thorough, so there really wasn't any difficulty here. Afterwards, I moved on to the ibm_zos_core modules (since I'd be using them most in my project), and combining different modules and trying more complex features of Ansible like loops and Jinja2 filters.

Dan - How long did it take you to complete the assigned automation task with Ansible from start to finish? How much time was saved by leveraging automation with Ansible? 
Alex - I spent about the first week and a half of my internship learning Ansible and the environment. Once I was confident in my understanding of Ansible and the various modules available to me, the main project of my internship took me just under four weeks to complete. Time saved on the automation itself goes from maybe thirty to sixty minutes down to two, but it's also important to consider the hours of time saved on training people to perform these processes manually as well as on any error resolution.

Dan  - How did Ansible mitigate your lack of Z knowledge when you were assigned Z related tasks? Would you have been able to perform these tasks manually before you started this project? What about after?
Alex - Ansible allowed me to work at a higher level for automating most tasks, meaning I only needed to know the very basics of Z. As an example, while I still needed to know what datasets are used for, the zos_fetch module let me pull a dataset and treat it like any old file with just three lines of code. Even for certain complex tasks where I couldn't abstract it down to individual modules, I could submit a JCL job for the task very easily, as long as I have that JCL (my team was very helpful here). Before this project, I think with a bit of training I could have performed most of the service process using the tools built-in to z/OS, assuming no errors. After this project I can definitely perform the full process manually, now with enough in-depth knowledge to handle some of the weirder problems that might come up.

Dan - What advice would you have for anybody interested in leveraging Ansible for automation?
Alex - It's often worth it to keep pushing through a problem rather than starting over with a new approach. When I was first learning Ansible, it felt so foreign to me since my programming experience has been in more mainstream languages like C#. I frequently found myself stuck right out the gate, but pushing through I realized it's not as weird as first perceived, and ultimately those obstacles didn't last very long.

As you can see, Alex was an incredible addition to the zPET team in his internship with IBM, and Ansible helped in enabling him to be successful in his role. IBM continues to look forward to hearing more stories like Alex's, where Ansible has helped bridge the distributed and Z ecosystems, as well as simplifying the onboarding to Z  skills process.

If you want to learn about Alex's journey more, feel free to reach out to him via email at alex@benodee.com.

Related Links:

Comments

Wed April 21, 2021 12:58 PM

Very interesting article, thank you Dan and Alex!
Scott McFall
IBM Z Champion
ProTech Enterprise IT Training & Consulting