The IMS provisioning playbook samples demonstrate how to allocate the required data sets and configure them to provision IMS and related services.
It is a good practice to review the playbook sample contents before executing them. It will help you understand the requirements in terms of space, location, names, authority, and the artifacts that will be created and cleaned up. Although samples are written to operate without the need for the user’s configuration, flexibility is written into the samples because it is not easy to determine if a sample has access to the host’s resources. Review the playbook notes sections for additional details and configuration.
- provision-tmdb-wazi.yml - allocating required data sets and kicking off many IMS services.
- deprovision-tmdb-wazi.yml - deallocating data sets and stopping IMS services.
- query-ims.yml - provides examples of how to query status of different IMS services. These examples utilize the roles defined below.
This project uses roles to provide an object-oriented model to provision IMS. Each role is responsible for a specific area. These roles can be re-used in different playbooks.
- check_duplicate_ims - Check if the IMSID requested is already up
- check_duplicate_imsplex - Check if the IMSPlex requested is already up
- check_inputs - Check if the IMSID, IMSPlex, and port numbers are valid
- check_port - Check if port numbers requested are reserved or in use
- deprovsion_ims - deprovisions IMS: shutdown and delete all datasets created by IMS provision playbook
- ims_apf - adds authorization of IMS datasets to zOS
- ims_catalog - allocates, loads, and deletes IMS catalog
- ims_common - provides services such as start/stop IMS control regions and IMS Connection
- ims_common_queue - provides dataset definition and query or CQS
- ims_dataset - creates and deletes IMS definition data sets and libraries
- ims_dbrc - sets up DBRC defaults and prepares DBRC
- ims_exit - prepares security and connection exit for IMS
- ims_gen - prepares DBDGEN, PSBGEN, and ACBGEN
- ims_iefjobs - creates IEF jobs
- ims_initialize - reserves ICON ports and sends PROCLIB templates to zOS
- ims_online_change - enables the online change utility
- ims_operations_manager - defines, starts, stops, and queries operations manager
- ims_proclib - defines BPE configuration and copies PROCLIB
- ims_racf - prepares RACF security for IMS
- ims_region - starts IMS regions
- ims_resource_manager - defines, starts, stops and queries RM
- ims_structured_call_interface - defines, starts, stops, and queries SCI
- ims_sysdef - prepares system definition data set
- ims_tls - configure AT-TLS ports
- install-bzip2 - copies and installs utility zip file on zOS
- monitor_ims - checks to see if IMS is up or down.
- provision_ims - this is the main role to provision IMS. It utilizes other roles to allocate datasets, prepare datasets and start all IMS services
- save-templates-to-datasets - copies templates from USS to zOS data sets
- send-template - sends a template file from the local host to zOS
- send-templates - sends multiple templates in a directory from local host to zOS
- set_up_run_environment - setting up the initial environment for playbook execution
- stop_jmp - stop JMP (Java) region
- stop_mpp - stop MPP region
- submit-rexx - runs a REXX script on zOS
Inside each role:
./tasks
contains tasks that can be performed by the role. Sub-folder names describe the use of the contained files../tasks/main.yml
contains the default tasks performed by the role.
- IBM z/OS core collection 1.5.0
- IBM z/OS IMS collection 1.2.0
- IBM® Wazi Sandbox 2.4 or IBM® Extended z/OS® ADCD for Z Development and Test Environment built upon the general release of ADCD z/OS® V2R5 December Edition of 2022 or later
If you are unfamiliar with playbooks, you can review our detailed configuration guide or continue with getting started below.
A few settings may need to be changed to ensure compatibility with your z/OS target.
For more information on python configuration requirements on z/OS, refer to Ansible FAQ: Running on z/OS.
-
Update inventories/zosendpoint contains the information needed to connect to our target. We must specify the following information about our target system:
- ansible_host: either an IP or URL to the target system.
- ansible_user: the username used to login with SSH.
- ansible_python_interpreter: the path on the target to the python interpreter.
- ansible_port: the port number to login with SSH if it's not the default port 2022 for Wazi systems.
- An example is below, where
zosendpoint
will be the name used to reference our target:
all: hosts: zosendpoint: ansible_host: your_host ansible_user: ibmuser ansible_port: 2022 ansible_python_interpreter: /usr/lpp/IBM/cyp/v3r9/pyz/bin/python3
-
Update the playbook specific variables in vars_wazi/ims-dbdc.yml based on desired behaviors. Some of the commonly changed variables are:
- DFS_IMS_SSID for IMSID
- ODBM_PORTIDPort and ODBM_SSLPORTID for ODBM ports
- IMS_CONNECT_PORT and IMS_CONNECT_SSLPORT for IMS Connect ports
- DFS_IMSPlex for IMSPlex name
- Run provisioning IMS playbook, type the following from the root of this repository:
ansible-playbook -i inventories/zosendpoint provision-tmdb-wazi.yml
- Run query IMS services, type the following from the root of this repository:
ansible-playbook -i inventories/zosendpoint query-ims.yml
- Run de-provisioning IMS playbook, type the following from the root of this repository:
ansible-playbook -i inventories/zosendpoint deprovision-tmdb-wazi.yml
© Copyright IBM Corporation 2023
Licensed under Apache License.