IBM Z Japan - Group home

z/OSの操作を自動化するAnsible

By DAIKI SHIMIZU posted Fri December 04, 2020 02:04 AM

  


インフラ構成管理のデファクトスタンダードであるAnsibleをz/OSでも活用できないか?と思ったことはありませんか。実際、Ansibleはあらゆるプラットフォームに対応しており、高い拡張性と柔軟性で定評があります。そこで、z/OSを操作するモジュールをAnsibleに追加すれば、z/OSの世界もAnsibleで管理できるようになるのではないか…というご要望をたくさんいただいておりました。

これを実現するのが、Red Hat Ansible Certified Content for IBM Zです。ここでは、この仕組みとメリットについて解説します。

Red Hat Ansible Certified Content for IBM Zとは

Red Hat Ansible Certified Content for IBM Z(以下、コンテンツ)は、z/OS用の操作を行う機能を提供するモジュールの集まりです。最近のAnsibleでは、必要に応じて追加導入できるモジュールの集まりをCollectionと呼んでいます。Ansibleの管理者は、使いたいCollectionを選び、Red Hatのサイトからダウンロードして、Ansibleに導入すればよいようになっています。

名前に"Certified"と付いているのには理由があります。Collectionはオープンソースソフトウェアとして開発・提供されていますので、どなたでも無償で使うことができます。使ってみて、実際の本番業務で使いたいとなったら、開発元のサポートが必要になるかも知れません。その際、サポート契約を結ぶだけでサポートが得られるように、あらかじめ"Certify"した状態でリリースしてあるのです。

2020年3月にコンテンツが発表されて以来、さまざまな機能拡張が急ピッチで行われています。2020年12月現在、以下のCollectionが公開されています。今後、ミドルウェアの品揃えを拡充すべく開発が進められています。

  • IBM z/OS core collection

  • IBM z/OS IMS collection

  • IBM z/OS CICS collection

  • IBM z/OS Management Facility collection

  • IBM Z System Automation collection

  • IBM Z HMC collection

ここでは代表的なCollectionであるIBM z/OS core collectionについて説明します。これを題材として、Ansibleからz/OSを操作することができるイメージをつかんでもらえればと思います。

IBM z/OS core collectionとは

z/OSの基本機能を操作するモジュールを提供します。具体的なモジュール名と機能を以下の表にまとめました。z/OSでは、JCL、MVSシステムコマンド、TSOコマンドを使って操作を行い、データセットやJobのアウトプットを確認します。これらのモジュールを使えば、ほとんどの作業をAnsibleで自動化することができます。

IBM z/OS core collectionが提供するモジュール名と機能一覧
モジュール名
機能
zos_apf
APF(Authorized Program Facility)のライブラリの追加、削除
zos_backup_restore
データセットとボリュームのバックアップとリストア
zos_blockinfile
z/OS上のテキストデータの編集(複数行単位)
zos_copy
データをz/OSデータセットにコピー
zos_data_set
データセットの作成、削除、置換
zos_encode
エンコードの変更
zos_fetch
z/OSデータセットやUSSファイルの中身のダウンロード
zos_find
条件に一致するデータセットの検索
zos_job_output
Jobアウトプットの取得
zos_job_query
Jobステータスの照会
zos_job_submit
JCLのsubmit
zos_lineinfile
z/OS上のテキストデータの編集
zos_mvs_raw
z/OS上のプログラムの実行
zos_operator
MVSシステムコマンドの実行
zos_operator_action_query
WTORメッセージの取得
zos_ping
z/OSの依存性の確認
zos_tso_command
TSOコマンドの実行
出典:IBM z/OS core collection
https://ansible-collections.github.io/ibm_zos_core/index.html

これらを使ったサンプルをいくつか紹介します。いずれも直感的に理解できる文法で記述されていることがおわかりいただけるかと思います。もちろん、Ansibleで標準的に用意されている機能と組み合わせて使うことができます。たとえば、実行時にパラメータを渡して動作を変えたり、システムのステータスに応じて条件分岐をしたり、実行結果をログに記録したりするようなことが簡単にできるようになっています。

JCLを実行するサンプルPlaybook

- name: Submit the JCL
  zos_job_submit:
    src: TEST.UTILS(SAMPLE)
    location: DATA_SET
    wait: false
  register: response



MVSシステムコマンドを実行するサンプルPlaybook

- name: Execute an operator command to show active jobs
  zos_operator:
    cmd: 'd u,all'



TSOコマンドを実行するサンプルPlaybook

- name: Execute TSO commands to allocate a new dataset
  zos_tso_command:
      commands:
          - alloc da('TEST.HILL3.TEST') like('TEST.HILL3')
          - delete 'TEST.HILL3.TEST'



他の自動化製品との比較

z/OSにはいくつか自動化の仕組みが用意されていますが、最もよく知られたものはNetViewではないでしょうか。

NetViewはメッセージ監視を行う監視ソフトウェアのひとつです。常駐プロセスがログを監視し、特定のメッセージが出てきたら、それに対応するアクションを起こす、といったことができます。Ansibleとの違いを以下の表にまとめてみました。適材適所で使い分けるといいでしょう。


Netviewとの違い

項目
Ansible
NetView
目的
構成管理の自動化
オペレータタスクの自動化
機能
構成変更の要求があったタイミングで、構成変更を行うコードにパラメータを渡して実行する
常駐プロセスがメッセージ監視を行う。特定のメッセージをトリガーとしてアクションを起こす
対象
あらゆるプラットフォームを網羅
z/OS



試してみたいときは

IBM z/OS core collectionを利用したAnsibleの操作を無償で体験することができるサイトがあります。あらかじめMyIBMのサイトから、IBMアカウントを作成しておいてください。IBMアカウントは無償で作成することができます。

MyIBM
https://www.ibm.com/account/jp/ja/

2020年12月時点で、3つのシナリオが用意されています



以下のサイトにアクセスすると、ブラウザ経由でAnsibleが動いているサーバーにログインすることができます。ここから、Ansibleによる自動化を体験することができます。

IBM Z software trials
https://www.ibm.com/it-infrastructure/z/software-trials

こちらはAnsibleが動いているサーバーにログインしたときの画面です。画面右で操作手順がガイドされています。




まとめ

z/OSの操作をAnsibleで自動化するコンテンツを紹介しました。今後、ミドルウェアの対応を含め、コンテンツが増えていく予定です。Ansibleを使ってz/OSの操作を自動化するお客様はどんどん増えてくるでしょう。ぜひ、z/OSにおけるAnsibleの利用を検討してみてはいかがでしょうか。


関連サイト

Ansible の IBM z/OS コア・コレクションが z/OS システム上での自動化に与える影響とは?
https://developer.ibm.com/jp/technologies/systems/blogs/ibm-zos-core-collection-for-ansible-automation-on-zos-systems/

Z Trialで最新のIBM Zソフトウェアを体験しませんか?
https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/noriko-akimoto1/2020/01/06/z-trialibm-z