Professional Documents
Culture Documents
ISEConf2022 B-7Ansibleによるメインフレーム運用のモダナイゼーション
ISEConf2022 B-7Ansibleによるメインフレーム運用のモダナイゼーション
B-7】
Ansible®によるメインフレーム運用のモダナイゼーション
2022/4/22
日本アイ・ビー・エム システムズ・エンジニアリング株式会社
メインフレーム・テクノロジー 澤田 遼太郎 AHA03276@jp.ibm.com
ミドルウェア・テクノロジー 佐々木 源 GSASAKI@jp.ibm.com
ご注意
この資料に含まれる情報は可能な限り正確を期しておりますが、日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておらず、
当資料に記載された内容に関して当コンファレンスの主催者である日本アイ・ビー・エム システムズ・エンジニアリング株式会社は何ら保証するものではありま
せん。従って、この情報の利用またはこれらの技法の実施はひとえに使用者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関し
ても一切の補償をするものではありません。
また、IBM、IBMロゴ、およびibm.comは、米国やその他の国におけるInternational Business Machines Corporationの商標または登録商標です。他の製品名
およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、ibm.com/trademarkをご覧ください。
The registered trademark Linux is used pursuant to a sublicense from the Linux Foundation, the exclusive licensee of Linus Torvalds, owner of the
mark on a worldwide basis.
Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。
UNIXはThe Open Groupの米国およびその他の国における登録商標です。
Red Hat、JBoss、OpenShift、Fedora、Hibernate、Ansible、CloudForms、RHCA、RHCE、RHCSA、CephおよびGlusterは、Red Hat Inc.または子会社の
米国およびその他の国における商標または登録商標です。
ServiceNow, ServiceNow のロゴ、Now、その他の ServiceNow マークは米国および/またはその他の国における ServiceNow, Inc.の商標または登録商標です。
GITHUB®, the GITHUB® logo design, OCTOCAT® and the OCTOCAT® logo design are exclusive trademarks registered in the United States by
GitHub, Inc.
Git and the Git logo are either registered trademarks or trademarks of Software Freedom Conservancy, Inc., corporate home of the Git Project, in
the United States and/or other countries.
当資料をコピー等で複製することは、日本アイ・ビー・エム システムズ・エンジニアリング株式会社および執筆者の承諾なしではできません。
2
目次
1. ITシステムにおける課題とアプローチ
2. Red Hat® Ansible Certified Content for IBM Zの概要
3. ユースケースのご紹介
4. 参考情報
5. まとめ
3
ITシステムにおける課題とアプローチ
ITシステムにおける課題
厳しいビジネス要求スピード サイロ化した仕組み
より早く正確な対応が急速に求められている
変更頻度が高くなってきている
モダンなツールを覚えている時間がとれない
人材不足
人材入れ替えコストが膨らんできている
属人化の進みが早く、ノウハウが共有されない
アウトソース費用が高騰してきている
増え続ける運用コスト 組織力で課題解決に取り組む必要があるが
サイロになっている仕組みが足かせに
管理リソースが多すぎる
業務が広範囲、かつ複雑化してきている
失敗影響が増大し、確認コストが膨らんでいく • 自動化スキルのレベルがチーム間でバラバラである
• 既存の自動化は仕組みがバラバラで一貫性がない
進まない働き方改革 • プラットフォームごとに異なる仕組みで自動化されている
• 独自開発のスクリプトや特殊なツールが戦略的に開発され
既存対応に追われて、改革が進まない ていないため、⾧期的に維持することが難しい
残業、休日、夜間対応が多い
ドキュメントの管理と探索に時間を費やしている
5
ITシステムにおける課題解決のアプローチ
標準化された仕組み
厳しいビジネス要求スピード
より早く正確な対応が急速に求められている
変更頻度が高くなってきている
モダンなツールを覚えている時間がとれない
NETWORK DEVELOPERS
人材不足 INFRASTRUCT
LINES OF
BUSINESS URE
人材入れ替えコストが膨らんできている
属人化の進みが早く、ノウハウが共有されない SECURITY OPERATIONS
アウトソース費用が高騰してきている
増え続ける運用コスト 標準化された仕組みをベースにすることで
組織力で課題解決に取り組むことができる
管理リソースが多すぎる
業務が広範囲、かつ複雑化してきている
失敗影響が増大し、確認コストが膨らんでいく
• 自動化スキルをチーム間で補い合うことができる
• 自動化の仕組みが一貫しているため、理解が早い
• プラットフォーム共通の仕組みになっているので横展開
進まない働き方改革 ができる
• 共通の仕組みに則ることで、戦略的なスクリプトや特殊
既存対応に追われて、改革が進まない
残業、休日、夜間対応が多い
なツールの開発が行えるようになり、⾧期的に維持する
ドキュメントの管理と探索に時間を費やしている ことが用意になる
6
Red Hat Ansible Certified Content for IBM Zの概要
Ansibleとは
インフラ自動化プラットフォームのリーダー
• OSやミドルウェアの導入/設定手順をYAMLで記述するため、学習コストが低い
• あらゆる操作対象を網羅するプラグイン(collection)を有し、基本デザインを横展開することができる
• GUI/CLI/REST APIに対応したインターフェースを提供し、関連するサービスと密な連携が行える
• HSBC社における7,000台の大規模実績を有する
基盤系SE 業務系SE
YAML形式の
パラメーター・シート Playbook
Ansible
API等
②Playbookの適用を指示
①操作内容を記述した
手順書 Playbookを準備
テスト仕様書 ③適用
New
2020年から
z/OS Linux® on IBM Z x86 パブリッククラウド
AIX, IBM i Linux on Power
Systems
8
Red Hat Ansible Certified Content for IBM Zの概要
• Ansibleの操作対象にz/OSを追加(z/Linuxは従来から操作対象)
- z/OSやミドルウェアを操作するためのプラグイン (Collection)を提供
• IBM z/OS core collection
• IBM z/OS IMS collection
• IBM z/OS Management Facility collection
• IBM z/OS CICS collection
• IBM z/OS System Automation collection
• IBM Z HMC collection
9
IBM z/OS core collection
• 提供しているモジュール(2022年4月現在)(1/2)
• 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_mount – z/OSファイルシステムのマウント
• zos_mvs_raw – z/OS上のプログラムの実行
青字:デモで使用しているモジュール
10
IBM z/OS core collection
• 提供しているモジュール(2022年4月現在)(2/2)
• zos_operator – MVSシステム・コマンドの実行
• zos_operator_action_query – WTORメッセージの取得
• zos_ping – ターゲット側のz/OSの依存性の確認
• zos_tso_command – TSOコマンドの実行
11
IBM z/OS core collection
• Playbookの実行イメージ
12
IBM z/OS core collection
• Playbookの実行イメージ
Webインターフェースを利用したい場合は、Ansible Tower(商用版)やAWX(OSS版)から実行・管理
13
IBM z/OS IMS collection
• 提供しているモジュール(2022年4月現在)
• ims_acb_gen – IMS ACBの生成
• ims_catalog_populate – IMSカタログへインスタンスのロード、挿入、更新
• ims_catalog_purge – IMSカタログのインスタンスやレコードの削除
• ims_command – IMSコマンドの実行
• ims_dbd_gen – IMS DBDの生成
• ims_dbrc – IMS DBRCコマンドの実行
• ims_psb_gen – IMS PSBの生成
青字:デモで使用しているモジュール
14
IBM z/OS Management Facility (z/OSMF) Collection
• 提供しているモジュール(2022年4月現在)
• zmf_authenticate – z/OSMFでの認証
• zmf_sca – z/OSのセキュリティー検査の自動化
• zmf_workflow – z/OSMFワークフローの比較、開始、削除、チェック
• 提供しているロール(2022年4月現在)
• zmf_cpm_create_software_instance – インスタンスの作成
• zmf_cpm_get_software_instance – インスタンスの取得
• zmf_cpm_list_software_templates – 公開済みテンプレートのリスト
• zmf_cpm_manage_software_instance – インスタンスの開始、停止
• zmf_cpm_provision_software_service – ソフトウェア・サービスのプロビジョニング
• zmf_cpm_remove_software_instance – インスタンスの削除
• zmf_workflow_complete – ワークフローの終了
青字:デモで使用しているロール
15
Ansible Certified Content for IBM Zのアーキテクチャー
ターゲット・ノード(操作対象)
z/OS core collectionを使うz/OS
Ansible Galaxy ssh
download SSH Python ZOAU *3
z/OS Ansible Collections
z/OSMF collectionのワークフローを
z/OS SA collectionを使うz/OS
z/OS Ansible Collections 実行
使う場合にdownload https SA Operations
https://requests.readthedocs.io/en/latest/
Ansible *2 REST Server
Requests library for Python z/OSMF collectionを使うz/OS
https
Linux / UNIX *1 z/OSMF CP&M *5
*1 Windowsはサポート対象外
*2 Ansible TowerやAWXも利用可能 Z HMC collectionを使うHMC
*3 IBM Z Open Automation Utilities、IBM z/OS core collectionの前提ソフトウェア https
*4 CICS management client interface Web Services API
*5 Cloud Provisioning & Management
16
ユースケースのご紹介
自動化すると効果の高い作業例
構築作業の工数削減・品質向上 計画停止時間の短縮
OSのコピー、カスタマイズ ロードバランサーの閉塞、開放
セキュリティー設定 作業前バックアップの取得
ネットワーク設定、DNS設定、ファイアウォール設定 設定変更、構成変更の実施
ディスク設定 変更後の動作確認、テスト実施
ミドルウェアの導入、セットアップ 作業エビデンス、作業後バックアップの取得
パッチの適用 切り戻し作業の実施
作業後の動作確認、テスト実施 - 設定変更、構成変更の戻し実施
作業エビデンスの取得 - 作業前バックアップからのリストア
IT運用のリード・タイムの短縮 内製化によるコスト削減
新しいサービス用のシステムの自動構築 構成および作業内容の標準化
新規ユーザーIDの払い出し 不要な作業手順の削除、隠れた作業の定型化
定期運用の自動化(起動、停止、バックアップなど) ワークフローによる作業のサービス化
障害発生時の定型作業の自動化(ログの取得など) 確認時の判断基準のロジック化
脆弱性対策の自動化(セキュリティー・パッチの適用など) ITと人の役割の整理、承認フローの明確化
災害対策サイトとの同期、切り替え、切り戻しの自動化 他システムとAPIによる自動連携
18
デモ・シナリオ
ユースケース 概要
1 開発・テスト環境構築の自動化 z/OSMFのワークフローを活用したz/OSやミドルウェア
のプロビジョニング
2 チケット管理システムとの連携 ServiceNow®からの申請に基づいたz/OSのユーザー管理
の自動化 作業およびチケットのクローズ処理
3 IMS運用の自動化 IMS生成およびSMP/E JCLIN実行
PSBGEN/DBDGEN/ACBGENおよび実行ライブラリーへ
の配布
IMSデータベース初期化
4 CICSのプログラム入れ替えの CICSプログラム定義作成&インストール
自動化
CICSプログラム入れ替え
・・・ 本日ご紹介する内容
19
開発・テスト環境構築の自動化
コンセプト
z/OSやミドルウェアの
z/OSクラウド インスタンスを自動的
必要なときにすぐに に作成・削除
環境作成して利用可能!
MQ CICS
CICS IMS Db2
MQ IMS Db2
LPAR LPAR
アプリ担当者など “メインフレームのインフラ”
インフラ担当者
(サービス利用者) の壁を低くしたい システム基盤
(サービス提供者)
・z/OS V2R2以降、z/OSMF※をz/OSのベース機能として提供
- z/OSMFのワークフロー機能やクラウド・プロビジョニング機能で製品の構成を簡素化する仕組みを提供
- z/OSやミドルウェア製品もz/OSMFを利用したプロビジョニング用ワークフローのサンプルを提供
・Ansibleのz/OS対応により、Ansibleからのプロビジョニングの実行もサポート
→ メインフレームのインフラ知識がない人でも、z/OS環境をクラウドのように利用可能に!
21
(参考) z/OSMFのワークフローおよびプロビジョニング機能
• ワークフロー機能では、z/OS上の一連の作業をWebインターフェースで管理する枠組みを提供
• クラウド・プロビジョニング機能では、環境構築のワークフローをサービスとして公開することで、
インフラのスキルがない担当者でも必要なときに迅速に環境を作成できる仕組みを提供
プロビジョニング用のポータル ワークフロー
ボタン・クリックで
ワークフローを自動実行
• これらのサービスやジョブ/データセットの操作は、z/OSMF提供のREST APIからも実行可能
22
z/OSやミドルウェアのプロビジョニング
コントロール・ノード ターゲット・ノード
(Ansible) (z/OS)
Playbook
- name: test role for ①ユーザー認証 プロシー
zmf_cpm_provision_software_service ジャー・
hosts: cpmhost ライブラリー 始動プロ
collections: z/OSMF シージャー
- ibm.ibm_zos_zosmf
vars_prompt:
- name: zmf_user z/OSMF
prompt: "Enter your zOSMF username" ファイルシス
private: no テム パラメーター
- name: zmf_password ライブラリー ZPARM
➁プロビジョニング用 ワークフロー
prompt: "Enter your zOSMF password"
のテンプレート実行 変数ファイル
private: yes
・・・
JCL
製品稼働
③ワークフローに従って ライブラリー
実行ログ JCLやコマンドを実行し、
必要な資源を作成
IBM zSystems
z/OSのインフラ知識がない担当者でも
メインフレーム環境をクラウドのように構築・利用できます!
23
デモ動画①
(参考) ワークフローの流れ – MQ Provision
1 2 3 4 5 6
QMGRクライ インスタンス オブジェクト
導入準備 QMGR起動 IVP実施
テリアの指定 構築 定義
• コマンド・プレ • ZPARM用ライブ • ZPARMの生成 INP2内でSTART テスト用オブジェクト • テスト用オブジェクト
フィックス、SSID ラリーの定義 • BSDS / アクティブ・ CHINを発行 の定義 の定義
の指定 • ZPRM用ライブラ ログ・データ・セット -ローカル・キュー -ローカル・キュー
• プロビジョン対象 リーのAPF登録 の定義 - SVRCONNチャネル - SVRCONNチャネル
のQMGR環境の指定 • ページセットの定義 • QMGR属性の変更
- DEV • ストレージ・クラスの - チャネル認証および
- TEST 定義 接続認証機能の無効化
- QA • MSTR用スタート・プ
- PROD ロシージャーの生成
• サブシステムIDの登録
(SETSSIコマンド)
• CHIN用スタート・プ
ロシージャーの生成
• INP2組込み用CHIN開
始コマンドの生成
• ポートの動的アロケー
ション
• QMGRセキュリティー
設定
• WLMのセットアップ
25
チケット管理システムとの連携の自動化
コンセプト
• z/OS上の作業とチケット管理作業をPlaybook化することにより、統一されたインターフェースで
運用を自動化
例)ユーザー管理作業の自動化 Playbook適用
• ServiceNowから申請された情報の取得
• JCLの作成 Ansible
• JCLの実行
• ジョブの実行結果の確認 ServiceNow
チケットの
クローズ
27
新規ユーザー作成: 処理の流れ (1/2)
申請書起票
・所属/氏名
申請者 ・システム名
・ユーザーID
・申請理由
承認/アサイン
承認者
1
ServiceNowから申請書の情報を取得 (snow_record)
申請書確認
• 申請書のIDをキーにして作成するユーザーID情報を取得
作業担当者
2 JCLの作成 (zos_copy) テンプ
• テンプレートから実行JCLライブラリーにJCLをコピー レート用
JCLLIB ADDUSER
テンプレート
3
JCLの編集 (zos_lineinfile)
• 1 で申請書から取得したユーザーIDをJCLに挿入 実行用
JCLLIB ADDUSER
• JCLの中の変数(パスワード等)を変数ファイルで指定した値で置換 JCL
環境変数.yml
28
新規ユーザー作成: 処理の流れ (2/2)
4
JCLの実行 (zos_job_submit )
• 編集したJCLをSUBMIT 実行用
• ジョブの実行結果を保存 JCLLIB ADDUSER
• ジョブの戻りコードを確認し、RC=0の場合は次に進む JCL
作業担当者 実行ログ.json
RACF DB
5
チケットのクローズ (snow_record)
• 申請書のステータスを完了に変更
• 作業完了の連絡と初期パスワードの情報を作業内容に追記
申請書確認
・所属/氏名
申請者 ・システム名
・ユーザーID
・申請理由
・作業内容
29
デモ動画➁
新規ユーザー作成の流れ
z/OS Core Collection提供モジュール
31
IMS運用の自動化
Playbook : PSBGEN/DBDGEN/ACBGENおよび実行ライブラリーへの配布
5 ims_acbgen 6 7 zos_job_submit
33
Playbook : PSBGEN/DBDGEN/ACBGENおよび実行ライブラリーへの配布 : 処理の流れ(1/2)
PSBソース
Remote
Repository Local
DBDソース Repository
1 PSB/DBDソース取得 (ansible.builtin.git)
PSBソース • GitHubリポジトリからコミット済PSBソース/DBDソースを取得
z/OS
DBDソース PDS PSBソース
2 PSB/DBDソース転送 (zos_copy)
PSBSRC
• z/OS上のPDSライブラリーにPSBソース/DBDソースをコピー
z/OS
PDS DBDソース
DBDSRC
PSBGEN処理実行
3 PSBGEN実行 (ims_psb_gen)
• z/OS PDSライブラリーを入力とするPSBGEN実行 z/OS
• 処理対象PSBを別ymlファイルで指示 PDS PSBモジュール
PSB/DBD対象リスト.yml PSBLIB
PSBGEN結果.json
DBDGEN処理実行
4
DBDGEN実行 (ims_dbd_gen)
• z/OS PDSライブラリーを入力とするDBDGEN実行 z/OS
PDS DBDモジュール
• 処理対象DBDを別ymlファイルで指示 DBDLIB
DBDGEN結果.json PSB/DBD対象リスト.yml
34
Playbook : PSBGEN/DBDGEN/ACBGENおよび実行ライブラリーへの配布 : 処理の流れ(2/2)
z/OS z/OS
PDS PDS
PSBLIB DBDLIB
5 ACBGEN実行 (ims_acb_gen)
• z/OS PSBLIB/DBDLIBを入力とするACBGEN実行 ACBGEN処理実行
• 処理対象PSB/DBDを別ymlファイルで指示
ACBGEN結果.json
PSB/DBD対象リスト.yml ACBモジュール
環境変数.yml z/OS
6 PDS
OLCUTL JCL作成 (template) ACBLIB
• jinja2テンプレート+環境変数からIMS実行ライブラリーへの
モジュール・コピーを実行するIMSユーティリティー
(DFSUOCU0)用JCLを作成 z/OS PDS
OLCUTL.jcl OLCUTL MODBLKS
テンプレート.j2
7
OLCUTL JCL実行 (zos_job_submit)
• 作成したJCLをコントロール・ノードから直接実行 OLCUTL処理実行
• 変数で指定した実行ライブラリーにモジュールがコピーされる
OLCUTL結果.json
35
デモ動画③
参考情報
IBM z/OS core collectionのトライアル環境
用意されているシナリオ
38
Playbookのサンプル・リポジトリー
39
まとめ
まとめ
• メインフレームのシステム運用にAnsibleを適用するイメージとして、以下の3つのユースケースを
ご紹介しました
- 開発・テスト環境構築の自動化
- チケット管理システムとの連携の自動化
- IMS運用の自動化
• Ansibleを活用することで、他のプラットフォームと標準化された仕組みで運用を自動化できます
- 組織内で要員やスキルの補完が容易になる
- z/OS用のCollectionにより、JCLやz/OSMFワークフロー等の既存の資産をそのまま活用することも可能
- ServiceNowやGitHubなどの外部システムとも柔軟に連携できる
メインフレーム運用の自動化の選択肢の一つとして、是非ご検討ください
41