4.9.1 JP1/AJS3
連携テンプレートを使用することにより、JP1/AJS3のジョブ管理機能との連携が可能になり、Ops IのワークフローからJP1/AJS3のジョブを実行することができます。
JP1/AJS3との連携のため、Ops Iでは以下の内容を提供します。(以下、これらを総称して「連携テンプレート」と呼びます。)
- JP1/AJS3の各ジョブ実行の内容が定義されたWorkflowなどのYAMLファイル
- Workflowの定義で使用するOps I提供部品
- JP1/AJS3との連携機能を実装したPlaybook
提供するYAMLファイルについては「連携テンプレートの取得と登録」を参考にしてください。また、playbookについては「認証情報およびジョブテンプレートのAWXへの登録」の手順5.を参考にしてください。Ops I提供部品については、一覧を次に示します。
Ops I提供部品 | 説明 |
---|---|
ajs.cancel_exec_schedule | ジョブネット実行中止 |
ajs.change_hold | ジョブネット保留属性変更 |
ajs.change_start_time | ジョブスケジュール変更 |
ajs.interrupt | ジョブネット中断 |
ajs.kill | ジョブネット強制終了 |
ajs.register_fixed_exec | ジョブネット確定実行登録 |
ajs.register_immediate_exec | ジョブネット即時実行登録 |
ajs.register_planned_exec | ジョブネット計画実行登録 |
ajs.rerun | ジョブネット再実行 |
ajs.show | ジョブネット実行情報取得 |
Ops I提供部品の各パラメータには、ワークフローのYAMLファイルで定義するものと、ワークフロー実行時にGUIから入力するものがあります。以下の説明に従って作業してください。
次に、JP1/AJS3の連携テンプレート実行の流れを以下に示します。
JP1/AJS3の連携テンプレートは以下の流れで実行されます。
①、②、③はJP1/AJS3の連携テンプレートを使用します。①および③のPlaybookは実行内容にあわせてカスタム可能です。
①ワークフローを実行
②JP1/AJS3のジョブ実行のためのOps I提供部品を実行
③自動化(AWX)のジョブテンプレートを実行
Playbookがコントロールプレーンに登録されます。
④JP1/AJS3にある中継サーバから③のPlaybookを取得
⑤Playbook実行により、Playbookに定義されたJP1/AJS3コマンドを実行
(1)前提条件
連携テンプレートを実行するユーザーはそれぞれ必要なロールを付与してください。
Ops Iのロールの詳細は「Ops Iロール」を参照してください。
JP1/AJS3は以下の条件が満たされている必要があります。この条件は、JP1/IMの「監視抑止」との連携と同じ条件です。
サポートOS | 前提条件 |
---|---|
Windows Server | ・Ops Iの中継サーバからJP1/AJS3のサーバにWinRMを使用して接続することができる。
・PowerShell 5.1以上がインストール済みである。・.NET 4.0以上がインストール済みである。 |
(2)JP1/AJS3の連携テンプレート実行のための設定
JP1/AJS3の連携テンプレート実行のための設定を説明します。
設定項目は以下になります。
「中継サーバの設定」を参考に、AWXのインスタンスグループと中継サーバの接続設定を行います。
接続設定後に、ノード一覧画面で該当の中継サーバのノードのステータスが「Ready」になっていることを確認してください。
「組織管理」を参考に、AWXを使用するために必要な、AWXの「組織」を作成します。
【c. JP1/AJS3の接続情報・認証情報をシークレット管理へ保存】
まず、自動化(AWX)からシークレットにアクセスするための認証情報を取得します。作成方法は「自動化からシークレットにアクセスするための認証情報の取得」を参照してください。
次に、「AWXの「組織」の作成」で作成した組織に対して、Ops I提供部品の実行に必要なシークレット情報の登録を行います。用途ごとに必要なシークレット情報の設定内容を示します。
それぞれのSecrets Engines、Secretの作成方法は以下を参照してください。
- Secrets Engines:「Secrets Engines作成」
- Secret:「Secretの作成」
キーは以下を設定してください。
- access_token(GitLabのリポジトリにアクセスするためのアクセストークン。GitLabアクセストークンの詳細は「GitLabアクセストークン取得方法」を参照してください。)
キーは以下を設定してください。
- password(AWXアクセス用のOps Iのパスワード)
- user_name(AWXアクセス用のOps Iのユーザー名)
キーは以下を設定してください。
- jp1_user_name(JP1ユーザー名)
- logical_host_name(論理ホスト名)※任意
- manager(JP1/AJS3 - Managerが稼働するIPアドレス)
- password(JP1/AJS3のサーバのOSのパスワード)
- user_name(JP1/AJS3のサーバのOSのユーザー名)
シークレットのバージョンは常に1である必要があるため、シークレットを更新する場合は、シークレットを削除してから再度作成してください。
キーは以下を設定してください。
- username(Ops Iアクセストークンを取得するユーザー名)
- password(Ops Iアクセストークンを取得するユーザーのパスワード)
- domain(Ops IのFQDN(例:"テナント名.ops-integration.com"))
「自動化」を参考に、JP1/AJS3の連携テンプレート実行に必要な以下のAWXの設定を行います。
認証情報タイプ「HashiCorp Vault Secret Lookup」
認証情報タイプ「ソースコントロール」
認証情報タイプ「AJS Credential type」
名前は「JP1/AJS3の接続情報・認証情報をシークレット管理へ保存」の手順3.で登録したJP1/AJS3のシークレットのパスを指定します。(例:secrets/ajs/host0001)
タイプの詳細は②と同様に①で登録したVaultの認証情報を指定します。その他のフィールドは「(表)外部シークレット管理システムのメタデータ入力一覧」を参考にしてください。「logical_host_name」への入力は任意です。
「中継サーバ使用手順」を参照してください。
また、オプションにあるチェックボックス「起動時のリビジョン更新」のチェックは任意ですが、チェックするとplaybookを更新したときに自動で更新後のplaybookを実行します。
---
ansible_connection: winrm
ansible_ssh_port: 5986
ansible_winrm_transport: basic
ansible_winrm_server_cert_validation: ignore
ansible_user: "{{ lookup('env','ajs_user_name') }}"
ansible_password: "{{ lookup('env','ajs_password') }}"
ジョブテンプレート登録の入力項目について以下に示します。
(表)ジョブテンプレート登録の入力項目
項目 | 説明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 任意の名前を設定します。 Ops I提供部品に定義しているデフォルト値を以下に示します。ジョブテンプレート名を変更する場合は、各部品のWorkflowのYAMLファイルに定義するジョブテンプレート名と一致させてください。
以下は、ジョブネット実行結果の確認などが行えるジョブテンプレートで、各部品のWorkflowのYAMLファイルにデフォルトで定義されています。 ジョブテンプレート名:AJS Show |
||||||||||||||||||||||
ジョブタイプ | 実行を選択します。 | ||||||||||||||||||||||
インベントリー | ![]() |
||||||||||||||||||||||
プロジェクト | ![]() |
||||||||||||||||||||||
実行環境、インスタンスグループ、認証情報 | 「中継サーバ使用手順」を参照し設定してください。 | ||||||||||||||||||||||
Playbook | 「system」グループの「system」リポジトリに登録されている、実行したいJP1/AJS3ジョブテンプレート提供部品のPlaybookを設定します。 「(表)actionのリスト(JP1/AJS3連携用Ops I提供部品)」のPlaybook nameを参考に、設定してください。 また、Playbookをカスタマイズしたい場合は、「system」グループの「system」リポジトリよりダウンロード後カスタマイズし、Ops Iの任意のリポジトリ(YAMLファイルの管理が有効)にpushしたPlaybookをジョブテンプレートに設定することにより使用可能となります。 |
||||||||||||||||||||||
起動プロンプト | 「認証情報」と「変数」のチェックボックスにチェックします。 |
(3)連携テンプレートの取得と登録
JP1/AJS3の連携テンプレートを実行するため、連携テンプレートを取得し、リポジトリに登録します。JP1/AJS3の連携テンプレートはWorkflow、Catalog、UI、およびDatamodelのYAMLファイルがzipファイルにまとめられてGitLabに格納されています。それぞれのYAMLファイルには、JP1/AJS3のジョブを実行するための内容が定義されています。ユーザーは、実行するジョブやシークレット情報など必要に応じて、カスタマイズします。
GitLabの以下の場所から、JP1/AJS3の連携テンプレートを取得します。systemリポジトリは、GitアプリケーションのExploreタブに表示されます。
(表)JP1/AJS3の連携テンプレートの格納場所とファイル名
グループ | リポジトリ | ディレクトリ | ファイル名 |
---|---|---|---|
system | system | integration templates/JP1 | JP1_integration_templates.zip |
Ops I提供部品をワークフローから実行するため、以下の通りWorkflowのYAMLファイルのactionにOps I提供部品、inputにパラメータを定義します。パラメータにはそれぞれ「シークレットの作成」で作成したシークレット情報を定義します。シークレットは、常に最新のシークレットのバージョンのものを設定してください。
Ops I提供部品とパラメータの詳細については、「(表)actionのリスト(JP1/AJS3連携用Ops I提供部品)」を参照してください。
(表)Workflowのactionとinputの定義内容
ラベル | 説明 | |
---|---|---|
action: | 実行するJP1/AJS3のOps I提供部品 | |
input: | 各パラメータに対して、「JP1/AJS3の接続情報・認証情報をシークレット管理へ保存」で設定した以下の値を入力します。 | |
awx_vault_~ | "awx_vault_~"で始まるパラメータにAWXアクセス用のシークレットのSecrets Engines名とシークレットへのパスを定義します。 | |
ajs_vault_~ | "ajs_vault_~"で始まるパラメータにJP1/AJS3のサーバアクセス用のシークレットのSecrets Engines名とシークレットへのパスを定義します。 | |
job_template_~ | "job_template_~"で始まるパラメータにAWXのジョブテンプレートの情報を定義します。 |
Ops I提供部品を定義したWorkflowのYAMLファイルと、取得したCatalog、UI、およびDatamodelのYAMLファイルを任意のリポジトリに登録します。リポジトリにはYAMLファイルの管理が有効である必要があります。リポジトリのYAMLファイルの管理については「リポジトリ管理」を参照してください。また、登録先のリポジトリのディレクトリは、取得したJP1/AJS3の連携テンプレートのフォルダ構成と同じである必要があります。リポジトリのディレクトリ構成について以下に示します。
(図)JP1/AJS3との連携用のリポジトリのディレクトリ構成
登録するYAMLファイルには依存関係があります。すべてのYAMLファイルを同時にGitLabに登録する場合は、依存関係を意識する必要はありませんが、1つずつYAMLファイルを登録する場合、Script、Datamodel、UI、Workflow、Catalogの順番で登録してください。ここでの「登録」は、GUIでの操作ではcommit、CUIでの操作ではpushを指します。
(4)連携テンプレートの実行と結果確認
「連携テンプレートの取得と登録」で登録したJP1/AJS3の連携テンプレートは、サービスカタログから実行します。
「ジョブネット即時実行登録」を実行した場合を例として、実行ステップごとの詳細について以下に示します。入力情報及び表示情報の詳細は「ワークフロー詳細画面の各入力項目」を参照してください。
ステップ | 作業者 | 説明 | |
---|---|---|---|
1 | サービスカタログ起動 | 申請者 | JP1/AJS3のジョブが定義されたカタログアイテムをクリックします。 |
2 | ワークフロー開始 | 申請者 | ワークフローのガイダンス画面が表示されます。内容を確認し、操作ボタンの「申請開始」をクリックします。 |
3 | 申請情報を入力 | 申請者 | ワークフローの申請画面より申請情報を入力し、操作ボタンの「申請」をクリックします。 |
4 | 申請情報を確認 | 運用担当者 | 申請情報を確認し、確認結果に応じて操作ボタンの「確認完了」または、「却下」をクリックします。 |
5 | 申請情報の承認 | 運用管理者 | 申請情報を確認し、確認結果に応じて操作ボタンの「承認」または、「却下」をクリックします。 操作ボタンの「承認」がクリックされるとJP1/AJS3に対するジョブが自動実行されます。 |
6 | ワークフロー終了後の確認 | 申請者 | ステップ1~5の内容をワークフロー操作画面で確認して、操作ボタンの「確認完了」をクリックします。 |
(5)ワークフロー詳細画面の各入力項目
ワークフローの詳細画面の各入力項目について説明します。この入力項目は、Ops I提供部品として提供されているパラメータが表示されます。
実行するOps I提供部品やステップによって、表示される項目や入力の可不可が切り替わります。
申請者入力項目について以下に示します。
項目 | 必須 | 説明 |
---|---|---|
JP1/AJSの接続情報 | Yes | 「JP1/AJS3の接続情報・認証情報をシークレット管理へ保存」の手順3.②で設定したJP1/AJS3のサーバアクセス用のシークレットへのパスを設定します。 |
JP1/AJSスケジューラーサービス名 | No | JP1/AJS3のスケジューラーサービス名を文字列で設定します。 (例)AJSROOT1 |
JP1/AJSユニット名 | Yes | JP1/AJS3のユニット名を文字列で設定します。 (例)/jobgroup/jobnet |
JP1/AJSマクロ変数※1※2※6 | No | JP1/AJS3のマクロ変数名と引き継ぎ情報の組み合わせを指定します。 (例)AJS2AA:5,AJS2BB:test |
ジョブネットの確定実行日時※2 | No | ジョブネットの実行日時を設定します。 |
ジョブネットの未来予定世代数※2 | No | 次回以降の実行予定世代数を設定します。1~99(単位:世代)の範囲で設定します。 |
ジョブネットの実行開始日※2 | No | ジョブネットの実行開始日を設定します。 |
ジョブネットの実行終了日※2 | No | ジョブネットの実行終了日を設定します。 |
スケジューラーサービス停止中の予定実行要否※1※2 | Yes | スケジューラーサービス停止中の予定実行要否を選択します。 |
JP1/AJS実行登録番号※3※4※5※7※8※9 | No | JP1/AJS3の実行登録番号をYYYYMMDDNNNの形式で設定します。 |
再実行方法※3 | Yes | 再実行方法を選択します。 |
保留状態の設定要否※3 | Yes | 保留状態の設定要否を選択します。 |
警告検出終了への変更要否※3 | Yes | 警告検出終了への変更要否を選択します。 |
変更後の保留属性※4 | Yes | 保留属性を選択します。 |
スケジュール変更操作※5 | Yes | スケジュールの変更操作を選択します。 |
実行開始日※5 | No | ジョブネットの実行開始日を設定します。 |
実行開始時刻※5 | No | ジョブネットの実行開始時刻を設定します。 |
次回実行予定の取り消し要否※5 | Yes | 次回実行予定の取り消し要否を選択します。 |
配下の開始日時の変更要否※5 | Yes | 指定したジョブネット中のジョブネットに対して、開始日時の変更要否を選択します。 |
運用担当者・運用管理者宛てのコメント | No | 運用担当者および運用管理者宛てのコメントを入力します。 |
その他の項目について以下に示します。
項目 | 必須 | 説明 | |
---|---|---|---|
差戻理由 | - | 運用担当者または運用管理者が差戻し理由を入力する項目です。 | |
差戻理由(運用担当者) | No | 運用担当者が差戻し理由を入力します。 | |
差戻理由(運用管理者) | No | 運用管理者が差戻し理由を入力します。 | |
実行前情報取得 | - | JP1/AJS3に対するジョブが実行される前のジョブまたはジョブネットの状態が表示されます。参照のみ可能な項目です。 | |
ステータス | No | ステータスが表示されます。 | |
実行結果 | No | 実行結果が表示されます。ステータスが「Successful」の場合には何も表示されません。 | |
ジョブURL | No | ジョブURLが表示されます。 | |
即時実行登録※ | - | JP1/AJS3に対するジョブの実行結果が表示されます。参照のみ可能な項目です。 | |
ステータス | No | ステータスが表示されます。 | |
実行結果 | No | 実行結果が表示されます。ステータスが「Successful」の場合には何も表示されません。 | |
ジョブURL | No | ジョブURLが表示されます。 | |
実行後情報取得 | - | JP1/AJS3に対するジョブが実行された直後のジョブまたはジョブネットの状態が表示されます。参照のみ可能な項目です。 | |
ステータス | No | ステータスが表示されます。 | |
実行結果 | No | 実行結果が表示されます。ステータスが「Successful」の場合には何も表示されません。 | |
ジョブURL | No | ジョブURLが表示されます。 |