4.7 ジョブ自動実行の設定手順

ジョブ自動実行の設定手順では、自動化機能を伴う処理について、YAMLファイルの登録とAWX設定の一連の流れを説明します。

本説明に用いるワークフロー定義例では、カタログ画面から起動すると、バックグラウンドでWebブラウザーにメッセージを出力するPlaybookを実行し、ワークフローを完了します。

以下の順序で作業を行います。

(表)YAMLファイルの登録とAWX設定の流れ

# 項目
(1) ワークフローの追加
(2) サービスカタログの更新
(3) ジョブテンプレートの作成
(4) カタログの起動

ワークフローの詳細については「ワークフローの設計」、「Workflow」、サービスカタログの詳細については、「データモデルの設計」、「Catalog」、ジョブテンプレートの詳細については「ジョブテンプレートの登録」を参照してください。

(1)ワークフローの追加

以下のワークフローを追加します。
本説明に用いるYAMLファイルには依存関係があります。全てのYAMLファイルを同時にGitLabに登録する場合は、依存関係を意識する必要はありませんが、1つずつYAMLファイルを登録する場合、Script、UI、Workflowの順番で登録してください。ここでの「登録」は、GUIでの操作ではcommit、CUIでの操作ではpushを指します。Playbookは順番を問いません。

(表)登録するYAMLファイル

フォルダ・ファイル名 概要
dummy -
script Script定義:
申請画面を初期表示した時にメッセージダイアログを表示します。
dummy_script
manifest.yaml
output_message.js
ui GUI定義:
UIの定義とScriptの定義(include)をします。
dummy_ui
manifest.yaml
workflow Workflow定義:
ワークフローの各ステップを定義します。
ワークフローからジョブテンプレートを実行するために、Task modelのactionでOps I提供部品の「awx.run_job_template」を、inputでジョブテンプレート名(本例では「dummy_template」)を定義しています。
launch_job_wf
manifest.yaml
playbook Playbook
test.yaml

YAMLファイルの詳細については、「Script」、「UI」、「Workflow」を、YAMLファイルが正しく登録できたことを確認する場合は、「YAMLファイルの登録状況確認方法 」を参照してください。

GitLabにYAMLファイルを追加すると、GitLabは次のようになり、Ops Iへワークフローが登録された状態になります。

(図)YAMLファイル登録後のGitLab

(図)YAMLファイル登録後のGitLab (図)YAMLファイル登録後のGitLab



(2)サービスカタログの更新

登録されたワークフローをサービスカタログ画面から確認するために、サービスカタログのYAMLファイルに以下を追記してください。

(表)サービスカタログ更新内容

追記箇所 追記内容
includes:   - kind: workflow
    name: launch_job_wf
categories:  - name: dummy
   label: AWX
   sub:
     - name: launch_job
       label: ジョブ実行
       items:
         - workflow: launch_job_wf
           label: AWXジョブ実行
           description: AWXジョブ実行するWFです。

正しく登録されると以下のようにカタログが表示されます。

(図)サービスカタログのYAMLファイル変更後のサービスカタログ画面

(図)カタログ変更後のOps I (図)カタログ変更後のOps I



(3)ジョブテンプレートの作成

ジョブテンプレートはジョブを実行するための認証情報、プロジェクト、インベントリ―などを組み合わせた定義のセットになります。プロジェクトに設定されているリポジトリからPlaybook用のYAMLファイルを指定することにより、Playbookと連携することができます。
本作業は、Playbook用のYAMLファイル(test.yaml)を、手順「(1)ワークフローの追加」で登録した後に実施することを想定しています。

  1. メニューエリアから自動化アプリケーションを選択しAWXを開く

(図)AWX選択画面

(図)AWX選択画面 (図)AWX選択画面


2. プロジェクトを同期する
①コンテンツエリアからプロジェクトを選択する。
②右のペインで、手順「(1)ワークフローの追加」でPlaybookのYAMLファイルを登録したプロジェクトの同期アイコンを選択する。同期されると、GitLlabに登録したYAMLファイルがAWXから認識される。

(図)プロジェクト選択画面

(図)プロジェクト選択画面 (図)プロジェクト選択画面


3. 新規ジョブテンプレートを作成する
①コンテンツエリアから、テンプレートを選択する。
②右のペインで、「追加」ボタンのプルダウンから、「新規ジョブテンプレートの追加」を選択する。

(図)テンプレート選択画面

(図)テンプレート選択画面 (図)テンプレート選択画面


必要な情報を入力する
③名前を入力する。本手順の場合は「dummy_template」を指定する。
ワークフローのYAMLファイルにこの名前を定義することで、このジョブテンプレートがひもづけられ実行される。
④処理を実行するホストを登録したインベントリ―を指定する。
インベントリ―の登録方法は「インベントリ―の登録」を参照してください。
⑤Playbookを指定する。本手順の場合は「dummy/playbook/test.yaml」を指定する。
手順2の②で同期処理を行うことで、プロジェクトに登録されたPlaybookがプルダウンに表示される。

その他の項目は入力する必要はありません。
⑥保存ボタンを押下しジョブテンプレートを保存する。

(図)新規ジョブテンプレート作成画面

(図)新規ジョブテンプレート作成画面 (図)新規ジョブテンプレート作成画面


⑦テンプレート画面のテンプレート一覧に、③で設定した「dummy_template」が保存されていれば、作成完了となります。


(4)カタログを起動する

サービスカタログから手順「(2)サービスカタログの更新」で追加したカタログを起動し申請開始ボタンを押下する。

(図)サービスカタログ画面

(図)サービスカタログ画面 (図)サービスカタログ画面

本手順では、JavaScriptで指定したメッセージが表示され、Playbook実行が正常に動作したことを確認することができる。

(図)結果出力画面

(図)結果出力画面 (図)結果出力画面

申請開始ボタンを押下するとワークフローが実行され、本手順ではワークフロー「AWXジョブ実行」が起動します。
ジョブのステータスは、Ops Iのワークフロー画面や、AWXのコンテンツエリアからジョブを選択することで確認することができます。Ops Iワークフロー画面の詳細は「ワークフロー」、AWXのジョブ確認画面は「ジョブの実行結果の確認」を参照してください。