Deploy IBM Open Enterprise Languages-aaS with the easy button ...

Posted by Anthony Randolph on August 31, 2023

Solution Recipe: Deploy all IBM Open Enterprise Languages with the easy button …
./run-deploy-oel-dev-env.sh --tags=oel-dev

Welcome to the Sweet Solutions blog. In my first post, I provide a solution-recipe to introduce the Solution Enablement Ansible Automation (SEAA) framework and use it to deploy IBM Open Enterprise Languages as a Service. Let’s get started.

Deploy Open Enterprise Languages-aaS

Ingredients

Setting the Table

Introduction

IBM Z and Cloud Modernization Stack is a relatively new and exciting offering from IBM that provides multiple components that clients can use as a part of their z/OS modernization journey. The stack has components that assist with modernizing existing and new z/OS application development scenarios. For more information on the stack components see the overview here.

Solution Overview

In this post, I will dive into a specific scenario using IBM z/OS Cloud Broker and the SEAA framework to automate the deployment of IBM Open Enterprise Languages, with a single command. The framework leverages native Kubernetes, OpenShift, and IBM z/OS Cloud Broker’s API’s and Ansible to deploy resources. The SEAA framework provides a prescriptive model based on tags and configuration variables provided. These values determine how the automation interacts with the underlying systems and the user. In the following sections, I will outline steps that can be used to deploy the IBM Open Enterprise Languages using the SEAA framework.

Gather Target Hosts Information

Before jumping in, let’s gather some information about your target environments. Make a note of the following information as it will be used later to create an Ansible inventory file used by the framework to deploy resources.

Step 1: Get OpenShift host and resource information

  • Determine API server for OpenShift cluster.
  • Decide on the login method to use.
    • Get login Auth Token from OpenShift UI. (click for video)

      If you use this method, copy the token provided, which will be used as the `cluster_auth_token` in the inventory.yaml file created later in this post.

    • OR - use 1Password Integration
  • Determine PVC resource usage.
    • If you are planning on using persistent volume storage when deploying IBM z/OS Cloud Broker (recommend)
      • Determine the storage class to use on OpenShift cluster, volumeMode must be a FileSystem. See the persistent volumes and storage class documentation for more information.
      • Option 1: The default storage class used by the SEAA framework is rook-cephfs and can be changed here.
      • Option 2: Override per ocphost in the inventory file or by passing in pvc_storage_class_name as an Ansible extra-vars.
    • Not planning on using persistent volume storage when deploying IBM z/OS Cloud Broker
      • Set broker PVC broker_instance_storage_configure and broker_instance_storage_enabled variable to false here.

Step 2: Get z/OS endpoint information.

  • Create or Select an existing z/OS Endpoint user ID and SSH credentials that will be used to connect from OpenShift to the z/OS Endpoint, make sure userid has appropriate authorization on the z/OS Endpoint to install the desired languages:
    • Userid for z/OS Endpoint with SSH public key deployed
    • SSH private key file for user ID
    • Passphrase for user ID (if required)
  • Allocated or select a directory that has at least 8G capacity for the ZPM Install and one that has 4G capacity for the ZPM state directory, see storage requirements topic for more info:
    • Default ZPM install directory: /usr/lpp/zpm
    • Default ZPM state directory: /var/zpm

Directions

Okay! So as you can see, I am really taking this solutions recipe thing seriously. Now that the table is set, let’s get the code and deploy some open enterprise languages.

Step 1: Clone, set up, and configure.

Step 2: Create an inventory file.

  • Copy the sample-inventory.yaml file and create a inventory.yaml file in your configured SEAA inventory directory.
    • default directory location: ${SEAA_CONFIG_PATH_TO_SE_ANSIBLE_ARTIFACTS}/playbooks/inventory
  • Update the newly copied inventory.yaml file based on the values decided on from Gather Target Hosts Information section above.
Creating and updating an inventory file. (click for videos)
Part I: Copying sample inventory and updating 'ocphosts' hosts.

Part II: Updating 'zosendpoints' hosts.

Step 3: Run Deploy Playbook script

Watch Videos for Deploying IBM Open Enterprise Languages-aaS
Part I: Smart deploying z/OS Cloud Broker and z/OS Package Manager

Part II: View continuation of deploying IBM Open Enterprise Languages

Wrap Up Next Steps

And with that, you are all set!!!

You’ve successfully used the SEAA framework to deploy IBM Open Enterprise Languages. Thanks for following along with my first solution recipe. If you stop by for a moment, you will see that by now you have the following deployed resources:

  • On OpenShift
    • OpenShift Project
      • OpenShift secrets for the z/OS Endpoint user
      • IBM z/OS Cloud Broker Operator and custom resources
      • IBM z/OS Package Manager Sub-Operator
        • Custom resources for z/OS Products and Validations
  • On z/OS endpoint
    • IBM z/OS Package Manager
      • IBM Open Enterprise Languages

The steps outlined in this post provided an introduction to how to use the SEAA framework to deploy components of the stack with this single command. There are several other ways the framework can be used to deploy resources to OpenShift and z/OS endpoints. For example, the SEAA framework could be used to ‘generate’ YAML files that can be deployed, managed, and shared from a source control management (SCM) system. Please visit the zmodstack-solutions repo for more info.

Okay! So full disclosure, I did not show an “easy button”. However, the command used here can easily be added as part of a CI/CD pipeline to deploy open enterprise languages-aaS. Keep an eye out for future solutions posts or send any suggested topics for consideration to sweet-solutions@gmail.com. Here are some potential future topics …

  • Generating YAML for resource deployment
  • Deploying with SEAA framework in OpenShift pipelines
  • Purging IBM Z and Cloud Modernization Stack resources

Special Thanks

I would like to thank Mike Fulton for the motivation and wisdom to create the ability to Deploy IBM Open Enterprise Languages-aaS, Igor Todorovski for his assistance in getting this blog site up and running, and Sri Ram Pisupati for his post reviews and edits.