Automate your mainframe!!!
Checkout the ibm.ds8000 v1.1.0 and ibm.csm v1.0.0 collections in Ansible Galaxy!!!!
Red Hat Ansible is an Automation platform that helps provide customers a way to automate the management of their entire enterprise environment. From servers to storage, customers can create custom playbooks that help lower management costs, as well as prevent user errors that can occur when having to manually make changes across a large environment. Based on an open source framework, a growing number of customers are now adopting Ansible to help automate their workload while simultaneously being able to take advantage of contributions by other companies attempting to perform the same actions.
Starting in 2022, the DS8000 team has been working hard to enhance the automation capabilities for customers based on the python and Ansible frameworks. Check out the following blog for more details on the first release of this code earlier this year!
DS8000 Automation with Python and Ansible
IBM is very invested in Ansible. Take some time to check out the already extensive Ansible support for IBM Z. Creating an official Ansible collection for the DS8000 family further helps IBM drive the zSynergy across storage and z systems, providing you the very best for your mainframe environment.
What's new in the ibm.ds8000 v1.1.0 Ansible Collection?
Checkout the latest ibm.ds8000 Ansible collection here.
In ibm.ds8000 v1.0.0, the focus was on delivering a first time collection using the pre-existing pyds8k python library as well as the pre-existing DS8000 REST interface. These interfaces had targeted support for the Cloud Storage Infrastructure. This infrastructure is a very Distributed oriented solution and did NOT cover how most mainframe customers would configure or manage a DS8000 using automation. Focused mostly on volume creation and host connections, the primary use case did not care about what logical subsystem (LSS) volumes were located on nor details such as managing CKD alias volumes, etc.
With the ibm.ds8000 v1.1.0 release we have now added in the support to handle the mindset of a mainframe customer.
What does the new release support? Here are a few things that the new interface now supports:
- Create, delete and query DS8000 Logical Subsystems (LSSs)
- Create one or more volumes by a specific ID (ex. 1500, 1501, etc). NOTE: This creates the volumes on a specific LSS.
- Create a range of volumes using a starting ID and a quantity value (ex. create 10 volumes starting at ID 1500)
- Create, delete and query CKD alias volumes.
- Delete a list of volumes in a single call.
- Create, delete, query and manage DS8000 resource groups. This helps with setting up multi-tenant environments.
- New modules for getting info on hosts, host ports, lsses, marray, pools and resource groups.
Here is a list of the new Modules created in this release:
- ds8000_host_info - Return info on DS8000 hosts
- ds8000_host_port_info - Return info on DS8000 host ports
- ds8000_lss - Manage DS8000 lsses
- ds8000_lss_info - Return info on DS8000 lsses
- ds8000_marray_info - Return info on DS8000 managed arrays
- ds8000_pool_info - Return info on DS8000 pools
- ds8000_resource_group - Manage DS8000 resource groups
- ds8000_resource_group_info - Return info on DS8000 resource groups
Installing and using ibm.ds8000 v1.1.0
The ibm.ds8000 v1.1.0 update does have a few pre-reqs. In order to support these more mainframe oriented use cases, changes had to be made to the RESTAPI and the corresponding pyds8k python library.
RESTAPI_DS8900F_220.127.116.1100 - This upgrade is currently only available for DS8900F systems at 89.31.xx.xx levels. Click the link to download the new RESTAPI code and follow the directions in the README in order to self upgrade the HMC to the new level. This code can be applied without disruption and without rebooting the HMC.
pyds8k v1.5.0 library - The latest version of pyds8k, v1.5.0, supports the new REST calls necessary for the new Ansible features. Click the link to view the library or install/upgrade pyds8k into your python environment using pypi
pip install pyds8k.
ibm.ds8000 Ansible collection - Click the link to view the details on the v1.1.0 version of the ibm.ds8000 ansible library. Or install the latest using the command:
ansible-galaxy collection install ibm.ds8000
The new ibm.csm v1.0.0 Ansible Collection
IBM has now officially released an Ansible Collection for IBM Copy Services Manager (CSM). CSM provides replication monitoring and management capabilities for IBM DS8000 and IBM FlashSystem storage systems.
By creating an Ansible Collection for IBM CSM, customers can now build on the already advanced replication management and automation provide by CSM to create end to end solutions across their host systems and storage systems.
For mainframe environments, if you combine the ibm.csm v1.0.0 collection with the DS8000 v1.1.0 collection you can not only configure the DS8000 volumes needed in your environment, but automation the configuration of the disaster recovery solution for those volumes.
Add in the Ansible support for IBM Z and you can automation z, the storage and your disaster recovery...all from Ansible!!!!
What automation is possible with the ibm.csm v1.0.0 collection?
What does v1.0.0 support? Here are a few things that the collection supports:
- Create and delete CSM sessions
- Add and remove copy sets in CSM sessions
- Run commands against CSM sessions (ex. Start, Suspend, Recover, Backup, etc)
- Enable, disable or Run Scheduled tasks
- Query all aspects of the CSM server (ex. sessions, copy sets, states, consistency, etc)
- Manage the active/standby server configuration for CSM
- Run any REST call available on the CSM server even if the collection does not support it in an official module yet
Here is a list of the Modules in this release:
||Manage the active / standby server connection for a CSM server
||Add or remove copy sets for a CSM session
||Query all aspects of sessions and the server
||Use this module to call anything supported in REST but not yet in the collection
||Run, enable or disable scheduled tasks
||Issue commands against a CSM session
||Create or delete CSM sessions
Installing and using ibm.csm v1.0.0
The ibm.csm v1.0.0 update does have uses the pyCSM python library in order to make REST calls on the CSM server.
NOTE: While this solution was tested primarily on a CSM 6.3.4 level of code, the majority of the CSM REST API was already developed and thus the solution should be compatible with all CSM 6.3.x levels of code.
pyCSM v1.0.1 library - The latest version of pyCSM, v1.0.1, supports the ibm.csm v1.0.0 collection. Click the link to view the library or install/upgrade pyCSM into your python environment using pypi
pip install pyCSM.
ibm.csm Ansible collection - Click the link to view the details on the v1.0.0 version of the ibm.csm ansible library. Or install the latest using the command:
ansible-galaxy collection install ibm.csm
Automating your storage environment
With the above collections from IBM, you can take a big step forward in the ability to automate your storage environment. Look to this space and follow the collections to see more improvements down the road.
We hope to be laying the foundation that will empower automation solutions that will help simplify management, cut costs and maximize the efficiency in maintaining your environments.
Just want to take a moment to thank a few people/groups for help in reaching this milestone and setting us up for future enhancements.
The pyds8k python library was started by another team. Our team took over from where they left off. A big shout out to those who are still at IBM or may have left who started this project allowing us to build upon this library.
Also want to make a personal shout out to both Justin Cripps and Percy SHI at IBM, for their dedication to the ibm.ds8000 solution. As well as the rest of the DS8000 automation team who have been meeting regularly to plan out and execute on an automation strategy for DS8000.
And I want to make another shout out to both Dominic Blea and Tom Zito, both of whom dedicated time out of their schedules to work on the ibm.csm Ansible solution.