インフラ構成管理のデファクトスタンダードであるRed Hat Ansibleや、画面操作を自動化するRPAをホストでも活用できないか? と思ったことはありませんか。実際、AnsibleやRPAは、あらゆるプラットフォームに対応しており、高い拡張性と柔軟性で定評があります。これまで、多くのお客様から、ホストの世界でもAnsibleやRPAが使えないか…というご要望をたくさんいただいていました。
そこで、AnsibleやRPAを使って、ホストの運用を自動化する方法をご紹介します。
ホスト運用の効率化のポイント
ホスト運用の効率化のポイントは、運用する際の「登場人物」を減らすことです。これまで要員がいる前提で業務フローを組んでいると、効率を上げることは容易ではありませんでした。そこで、要員が行う作業をAnsibleやRPAに代替させることによって登場人物を減らし、作業時間のリードタイムの短縮や作業時間の短縮、作業の安定化を実現することができます。
ホスト運用の効率化のポイント ~「登場人物」を減らし、ホスト運用作業を効率化
(1)外部とのやりとり
[ア]入力:依頼指示書、もしくは別システムから、実行内容に応じたパラメータを受け取る など
[イ]出力:作業報告書を提出、もしくは結果を別システムに連携する など
(2)受け取ったパラメータを踏まえて、JCLや各種コマンドを実行する
(3)受け取ったパラメータを踏まえて、3270画面を操作する
(1)の外部とのやりとりについては、ServiceNowなどのヘルプデスク機能を持った従来のテクノロジーでカバーすることができます。一方、2つ目は、パラメータや実行結果の受け渡しの部分で、従来のテクノロジーでは限界がありました。3つ目も同様で、3270画面操作に対応していた既存のRPAでは処理が遅く、要員が手作業で行ったほうが早いなどの課題がありました。そこでパラメータや実行結果の受け渡し機能が充実しているAnsibleやRPAを使って(2)と(3)を行えば、一気に自動化できるようになりました。
Red Hat Ansibleとは
OpenShiftと並ぶRed Hatのハイブリッドクラウド製品の1つです。あらゆるプラットフォームに対応したインフラ自動化のデファクトスタンダードとして知られています。OSやMWの導入/設定手順、パラメータをテキストファイル(YAML)で記述することができるため、初心者でも気軽に始められ、学習コストも低いのが特長です。
Ansibleとは
Red Hat Ansible Certified Content for IBM Zとは
Ansibleでは、必要に応じて追加導入できるアドオンのことを「Collection」と呼んでいます。IBMが開発したホスト用のCollectionをまとめて「Red Hat Ansible Certified Content for IBM Z」と呼んでいます。Ansibleの管理者は、使いたいCollectionを選び、Red Hatのサイトからダウンロードして、Ansibleに導入すればよいようになっています。詳細は、注の[1]をご覧ください。
名前に“Certified”と付いているのには理由があります。Collectionはオープンソースソフトウェアとして開発・提供されていますので、どなたでも無償で使うことができます。使ってみて、実際の本番業務で使いたいとなったら、開発元のサポートが必要になるかも知れません。その際、サポート契約を結ぶだけでサポートが得られるように、あらかじめ“Certify”した状態でリリースしてあるのです。
2020年3月に最初のコンテンツが発表されて以来、さまざまな機能拡張が急ピッチで行われています。2021年6月現在、以下のCollectionが公開されています。Ansibleの強力な標準機能とCollectionの機能を組み合わせることにより、画面操作を除くほとんどすべての操作をAnsibleで行うことができます。
Ansibleの標準機能とCollection一覧
ここでは代表的なCollectionであるIBM z/OS core collectionについて紹介します。これを題材として、Ansibleからホストを操作することができるイメージをつかんでもらえればと思います。
IBM z/OS core collectionとは
IBM z/OS core collectionは、JCLやMVSシステムコマンド、TSOコマンドを実行する機能を提供するAnsibleのアドオンです。これを使うと、それぞれの操作はシンプルなYAML形式で記述できます。実行した結果は、指定した変数(サンプルではresponse)に格納されます。Ansibleの標準機能を使えば、その変数の中身を調べて正常性を確認してから、次の操作を行うといったことが可能です。サンプルでは、実行するJCLや各種コマンドが固定されていますが、Ansibleの変数を使っておけば、実行時に指定することもできます。
IBM z/OS core collectionのサンプル
このCollectionを事前に試してみたい!という方向けに、クラウド上にデモ環境が用意されています[2]。ホストは知っているが、これまでAnsibleは触ったことがない、という方はぜひ、デモを体験してイメージをつかんでみてください。
なお、このCollectionは、OpenSSHを用いてホストに接続します。このため、自動化対象のホストではOpenSSHが使えるz/OS V2R3以上が稼働しており、さらにCPACF(CP Assist for Cryptographic Functions)という暗号化フィーチャを搭載している必要があります。これまで、この前提条件を満たさないホストでは、Ansibleのメリットが享受できませんでした。
しかしながら、OpenSSHの前提条件を満たしていないホストをお持ちのお客様から、それでもAnsibleを使ってみたいという声が多数ありました。そこで、OpenSSHの代わりにFTPを用いて接続するFTP版のIBM z/os core collectionを開発・リリースしました[3]。通常のOSSと同じ扱いのため、商用サポートはありませんが、本番環境でも使えます。前提条件を満たしていなくてもAnsibleを使ってみたい!というお客様は、ぜひ、こちらをご利用ください。
3270画面操作の自動化とは
ここからは、3270画面操作の自動化について紹介します。最近、3270画面操作を迅速かつ安全に自動化するRPAが利用可能になりました。
IBM Robotic Process Automation
●SaaSベースでフル機能を提供し、短期間で価値を創出できるRPA(オンプレミスでの構築も可能)
●AIやチャットボットを軸とする適用範囲の広い自動化に対応
●内蔵しているエミュレータ経由で3270画面操作を自動化
Microsoft Power Automate Desktop
●Windows 10ユーザーは無償で利用できるRPA
●SaaSベースのPower Automateと連携して、業務プロセスの包括的な自動化を実現
●エミュレータAPI(EHLLAPI)経由で3270画面操作を自動化
ここではWindows 10ユーザーであれば無償で利用できるMicrosoft Power Automate Desktop(PAD)を紹介します。PADは、3270画面操作を自動化する上で役立つ機能を用意しています。
(1)自動化のロジックをGUI上で開発できます。これにより初心者でも簡単に始められます。また、開発生産性も高いです。
(2)入出力変数やフロー変数が用意されており、実行したい内容に応じて、入力したい内容を変化させることができます。パスワードなど機密にしたい文字列を安全に扱う機能も用意されています。
(3)アルファベットや数字などの文字入力に加え、Ctrlキーやファンクションキーなどの特殊キーを入力することができます。パスワードなど機密の文字列を入力したときは、自動的に非表示になります。
(4)画面に表示されているタイトルなどを検出して、きちんと画面が切り替わってから文字入力を行うといったロジックを組むことができます。画面が切り替わるたびに一定時間スリープしたりする必要がないため、3270画面の操作を高速に行えるようになっています。
最後の(4)は、RPAで自動化するうえで重要なポイントです。従来のRPAでは、画面が切り替わるのを一定時間待ってから次の操作を行うため、画面の切り替えが遅れると操作ミスにつながっていました。これを防ぐため、待ち時間を長めに設定すると、わかる人が手作業で行ったほうが早く終わるといった事態になっていたのです。PDAではこの問題が解消されています。
実際にPADで3270画面を操作するデモを行ってみました。例として取り上げたのは、HCD(Hardware Configuration Definition)のパネルに入り、IODF(I/O Definition File)を変更する操作です。これまで、Ansibleでは自動化できないと言われていた操作の1つです。大まかな流れは以下のとおりです。
HCDのパネル操作の自動化
紹介した動画では、コマ落ちを防ぐため、画面が切り替わった後に数秒待つようにしてあります。その待ち時間をなくすと瞬時に処理が終わります。PADを使うと、このような操作を簡単に自動化することができます。
ホスト運用作業の大幅な効率化へ
Red Hat AnsibleとMicrosoft Power Automate Desktopを使って、ホストの操作を自動化する方法をご紹介しました。今後、これらのテクノロジーを使って自動化を推進するお客様はどんどん増えてくるでしょう。自動化のテクノロジーを使うことによって登場人物を減らせれば、ホスト運用作業を大幅に効率化することができます。ぜひ、これらのテクノロジーの利用を検討してみてはいかがでしょうか。
◎関連サイト
[1]z/OSの操作を自動化するAnsible
https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/daiki-shimizu1/2020/12/04/zos-ansible-001
[2]Z Trialで最新のIBM Zソフトウェアを体験しませんか?
https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/noriko-akimoto1/2020/01/06/z-trialibm-z
[3]FTP版IBM z/OS core collection
https://github.com/IBM/zos-core-collection-ftp
[4]Microsoft Power Automate Desktopによるホストの操作
*動画のリンク先作成中(完成次第、リンクします)
著者
清水 大紀 氏
日本アイ・ビー・エム株式会社
テクノロジー事業本部
IBM Zテクニカルセールス
コンサルティングI Tスペシャリスト
TEC-J Steering Committeeのメンバー
高信頼データベースなどIBM Zをベースとするソリューションの提案をするプリセールスSEとして従事。システムの安定稼働や運用効率化のため、Ansible/Chef/RPAのご紹介や技術支援を実施。2014年より、環境構築ツールについて研究するITLMC Work Groupのリーダーを務め、IBM社内における自動化やInfrastructure as Codeの普及を推進している。
本記事は筆者ら個人の見解であり、IBMの立場、戦略、意見を代表するものではありません。
当サイトでは、TEC-Jメンバーによる技術解説・コラムを掲載しています。
TEC-J技術記事:https://www.imagazine.co.jp/tec-j/
[i Magazine・IS magazine]