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提供部品(JP1/AJS3連携用)

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の連携テンプレート実行の構成図 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の「監視抑止」との連携と同じ条件です。

(表)JP1/AJS3の条件(オンプレミス)

サポートOS 前提条件
Windows Server
・Ops Iの中継サーバからJP1/AJS3のサーバにWinRMを使用して接続することができる。
・PowerShell 5.1以上がインストール済みである。
・.NET 4.0以上がインストール済みである。


(2)JP1/AJS3の連携テンプレート実行のための設定

JP1/AJS3の連携テンプレート実行のための設定を説明します。
設定項目は以下になります。

a. 中継サーバの設定
b. AWXの「組織」の作成
c. JP1/AJS3の接続情報・認証情報をシークレット管理へ保存
d. 認証情報およびジョブテンプレートのAWXへの登録

【a. 中継サーバの設定】

中継サーバの設定」を参考に、AWXのインスタンスグループと中継サーバの接続設定を行います。
接続設定後に、ノード一覧画面で該当の中継サーバのノードのステータスが「Ready」になっていることを確認してください。


【b. AWXの「組織」の作成】

組織管理」を参考に、AWXを使用するために必要な、AWXの「組織」を作成します。


【c. JP1/AJS3の接続情報・認証情報をシークレット管理へ保存】

まず、自動化(AWX)からシークレットにアクセスするための認証情報を取得します。作成方法は「自動化からシークレットにアクセスするための認証情報の取得」を参照してください。
次に、「AWXの「組織」の作成」で作成した組織に対して、Ops I提供部品の実行に必要なシークレット情報の登録を行います。用途ごとに必要なシークレット情報の設定内容を示します。
それぞれのSecrets Engines、Secretの作成方法は以下を参照してください。

1. GitLabのリポジトリにアクセスするための認証情報を登録します。自動化からシークレットにアクセスするための認証情報とプロジェクトの設定で使用します。
① Secrets Enginesを作成します。Secrets Engines名は任意です。(例: secrets/gitlab)
② Secretを作成します。シークレットへのパスは任意です。(例:git)
キーは以下を設定してください。
  • access_token(GitLabのリポジトリにアクセスするためのアクセストークン。GitLabアクセストークンの詳細は「GitLabアクセストークン取得方法」を参照してください。)
2. AWXアクセス用のシークレット情報を登録します。(登録した情報をWorkflowのYAMLファイルに定義します。)
① Secrets Enginesを作成します。Secrets Engines名は任意です。(例:secrets/awx)
② Secretを作成します。シークレットへのパスは任意です。(例:user/credential)
キーは以下を設定してください。
  • password(AWXアクセス用のOps Iのパスワード)
  • user_name(AWXアクセス用のOps Iのユーザー名)
AWXへのアクセスはPATを使用して認証することも可能です。PATについては「PATを使用した認証情報」を参照してください。

3. JP1/AJS3のサーバアクセス用のシークレット情報を登録します。(登録した情報をWorkflowのYAMLファイルに定義します。)
① Secrets Enginesを作成します。Secrets Engines名は任意です。(例:secrets/ajs)
② Secretを作成します。シークレットへのパスは任意ですが、JP1/AJS3 - Managerが稼働するホスト名またはIPアドレスの設定を推奨します。(例:host0001)
キーは以下を設定してください。
  • jp1_user_name(JP1ユーザー名)
  • logical_host_name(論理ホスト名)※任意
  • manager(JP1/AJS3 - Managerが稼働するIPアドレス)
  • password(JP1/AJS3のサーバのOSのパスワード)
  • user_name(JP1/AJS3のサーバのOSのユーザー名)

4. ユーザーのクレデンシャル情報を登録します。ワークフロー内のoi.fetch_access_tokenの実行に必要なシークレットです。oi.fetch_access_tokenの詳細は「Ops I提供部品」、登録方法は「ユーザーのクレデンシャル情報登録」を参照してください。
① Secrets Enginesを作成します。Secrets Engines名は任意です。(例: secrets/opsi)
② Secretを作成します。シークレットへのパスは任意です。(例:user/credential)
シークレットのバージョンは常に1である必要があるため、シークレットを更新する場合は、シークレットを削除してから再度作成してください。
キーは以下を設定してください。
  • username(Ops Iアクセストークンを取得するユーザー名)
  • password(Ops Iアクセストークンを取得するユーザーのパスワード)
  • domain(Ops IのFQDN(例:"テナント名.ops-integration.com"))

【d. 認証情報およびジョブテンプレートのAWXへの登録】

自動化」を参考に、JP1/AJS3の連携テンプレート実行に必要な以下のAWXの設定を行います。

1. 以下の認証情報を登録します。①、②の詳細は「認証情報の登録」を参照してください。
① Vault:
認証情報タイプ「HashiCorp Vault Secret Lookup」
② GitLab:
認証情報タイプ「ソースコントロール」
③ JP1/AJS3:
認証情報タイプ「AJS Credential type」
名前は「JP1/AJS3の接続情報・認証情報をシークレット管理へ保存」の手順3.で登録したJP1/AJS3のシークレットのパスを指定します。(例:secrets/ajs/host0001)
タイプの詳細は②と同様に①で登録したVaultの認証情報を指定します。その他のフィールドは「(表)外部シークレット管理システムのメタデータ入力一覧」を参考にしてください。「logical_host_name」への入力は任意です。
④ 中継サーバ:
中継サーバ使用手順」を参照してください。

2. 「プロジェクトの設定」を参考にプロジェクトを設定します。プロジェクトの名前は「System」を入力します。
また、オプションにあるチェックボックス「起動時のリビジョン更新」のチェックは任意ですが、チェックするとplaybookを更新したときに自動で更新後のplaybookを実行します。

3. 「インベントリーの登録」を参考にインベントリーを登録します。変数の記載は不要です。

4. 「インベントリーの登録」を参考に、手順3.で登録したインベントリーにひもづく以下のホストを作成します。
名前:「JP1/AJS3の接続情報・認証情報をシークレット管理へ保存」の手順3.②で設定したmanagerの値(JP1/AJS3 - ManagerのIPアドレスを想定)
変数:以下の記載例を参考に設定してください。

記載例

---
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') }}"


5. 「ジョブテンプレートの登録」を参考にジョブテンプレートを登録します。
ジョブテンプレート登録の入力項目について以下に示します。

(表)ジョブテンプレート登録の入力項目

項目 説明
名前 任意の名前を設定します。
Ops I提供部品に定義しているデフォルト値を以下に示します。ジョブテンプレート名を変更する場合は、各部品のWorkflowのYAMLファイルに定義するジョブテンプレート名と一致させてください。
Ops I提供部品 ジョブテンプレート名
ajs.cancel_exec_schedule AJS Cancel Exec Schedule
ajs.change_hold AJS Change Hold
ajs.change_start_time AJS Change Start Time
ajs.interrupt AJS Interrupt
ajs.kill AJS Kill
ajs.register_fixed_exec AJS Register Fixed Exec
ajs.register_immediate_exec AJS Register Immediate Exec
ajs.register_planned_exec AJS Register Planned Exec
ajs.rerun AJS Rerun
ajs.show AJS Show

以下は、ジョブネット実行結果の確認などが行えるジョブテンプレートで、各部品のWorkflowのYAMLファイルにデフォルトで定義されています。
ジョブテンプレート名:AJS Show
ジョブタイプ 実行を選択します。
インベントリー アイコンをクリックし、上記3.で登録したインベントリーを選択します。
プロジェクト アイコンをクリックし、上記2.で登録したプロジェクトを選択します。
実行環境、インスタンスグループ、認証情報 中継サーバ使用手順」を参照し設定してください。
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のジョブを実行するための内容が定義されています。ユーザーは、実行するジョブやシークレット情報など必要に応じて、カスタマイズします。

【JP1/AJS3の連携テンプレートを取得】

GitLabの以下の場所から、JP1/AJS3の連携テンプレートを取得します。systemリポジトリは、GitアプリケーションのExploreタブに表示されます。

(表)JP1/AJS3の連携テンプレートの格納場所とファイル名

グループ リポジトリ ディレクトリ ファイル名
system system integration templates/JP1 JP1_integration_templates.zip

【WorkflowのYAMLファイルの定義】

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のジョブテンプレートの情報を定義します。

【 各YAMLファイルのリポジトリへの登録 】

Ops I提供部品を定義したWorkflowのYAMLファイルと、取得したCatalog、UI、およびDatamodelのYAMLファイルを任意のリポジトリに登録します。リポジトリにはYAMLファイルの管理が有効である必要があります。リポジトリのYAMLファイルの管理については「リポジトリ管理」を参照してください。また、登録先のリポジトリのディレクトリは、取得したJP1/AJS3の連携テンプレートのフォルダ構成と同じである必要があります。リポジトリのディレクトリ構成について以下に示します。

(図)JP1/AJS3との連携用のリポジトリのディレクトリ構成

AJSディレクトリ構成 AJSディレクトリ構成

※1:各ワークフローで共通のデータを格納するdatamodelです。各ワークフローで共通のデータについては、「ワークフロー詳細画面の各入力項目」を参照してください。
※2:ワークフローの説明を表示するガイダンス画面です。Workflowの定義の詳細については「Workflow」を参照してください。

登録する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 運用担当者および運用管理者宛てのコメントを入力します。
※1:Ops I提供部品「ジョブネット計画実行登録」実行時のみに表示される項目です。
※2:Ops I提供部品「ジョブネット確定実行登録」実行時のみに表示される項目です。
※3:Ops I提供部品「ジョブネット再実行」実行時のみに表示される項目です。
※4:Ops I提供部品「ジョブネット保留属性変更」実行時のみに表示される項目です。
※5:Ops I提供部品「ジョブスケジュール変更」実行時のみに表示される項目です。
※6:Ops I提供部品「ジョブネット即時実行登録」実行時のみに表示される項目です。
※7:Ops I提供部品「ジョブネット実行中止」実行時のみに表示される項目です。
※8:Ops I提供部品「ジョブネット強制終了」実行時のみに表示される項目です。
※9:Ops I提供部品「ジョブネット中断」実行時のみに表示される項目です。

その他の項目について以下に示します。

(表)その他の項目

項目 必須 説明
差戻理由 運用担当者または運用管理者が差戻し理由を入力する項目です。
差戻理由(運用担当者) 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が表示されます。
※「即時実行登録」項目は「ジョブネット即時実行登録」を実行した場合の項目名です。この項目は、実行したOps I提供部品の名前の一部が表示されます。