【Ansible Tower/AWX】Survey(対話機能)の作り方から実行まで


この記事はプロモーションを含みます。

Ansible

ホーム > Ansible Tower・AWX リファレンス

Ansible Tower・AWXでは、Surveyという対話形式の入力フォームが使用可能です。
本記事では、Surveyの設定方法から実行するまでの使い方を解説します。

Survey とは

まず、Surveyとはどのようなものなのかを説明します。

Surveyは、テンプレート(ジョブテンプレート・ワークフローテンプレート)に設定可能で、ジョブ(テンプレート)の実行時に以下のような入力フォームが表示されるようになります。

画像は事前に用意した選択肢から、いずれかを選択させるフォームです。
ユーザーが選択した回答は、設定した変数に格納され、ジョブの中で使用することが可能です。
このように、対話機能を設けて、テンプレートの汎用性を高める機能がSurveyです。

では、実際にテンプレートに設定する方法と、実行する方法を見ていきましょう。

設定方法

ここでは、ジョブテンプレートに、Surveyを設置する方法を説明します。

まず、AWXのメニューから、テンプレートを選択し、テンプレート一覧を表示します。
そこから、Surveyを設置するテンプレートを選択します。
*画像ではテンプレート名が「Check Extra Vars Template」となっていますが、実際の処理では「Survey Template」を使用します。

テンプレートの編集画面が表示されるので、「SURVEY の追加」ボタンをクリックします。

各項目を入力して、「+ADD」ボタンをクリックします。

以下は各項目の説明です。

項目説明
プロンプト質問のタイトルを指定
説明質問の説明文を指定
回答の変数名ユーザーの回答を格納する変数名を指定
回答タイプ入力フォームの形式を指定
最小長入力文字列の最小文字数を指定
(この項目は回答タイプによって変化します)
最大長入力文字列の最大文字数を指定
(この項目は回答タイプによって変化します)
デフォルトの応答入力フォームに元から入力されている文字列を指定
必須質問を入力必須項目とするか
チェックあり:必須
チェックなし:任意

次に、「保存」ボタンをクリックします。

また、プレビュー画面では以下の操作を行うことが可能です。
・質問の編集:鉛筆アイコンをクリックすることで、質問を編集出来ます。
・質問の削除:ゴミ箱のアイコンをクリックすることで、質問を削除出来ます。
・質問の移動:質問が複数ある場合に、6つの黒い丸のアイコンをスライドさせることで質問の順序を変えることが可能です。

Surveyの作成は以上になります。次は実行してみたいと思います。

実行方法

作成したSurveyを使用してみましょう。
Surveyは設定していれば、テンプレートを起動すると自動的にダイアログが表示されます。

では、テンプレートを起動してみましょう。
テンプレート編集画面の右下にある「起動」ボタンをクリックします。

起動すると先ほど作成したSurveyの質問が表示されます。
試しに、「秋拓技術学院」と入力して、「次へ」をクリックします。

最後の確認画面が表示されます。
ここで、ユーザーが入力した回答がどのように変数に格納されるかが確認出来ます。
今回作成したSurveyでは、「survey_string: 秋拓技術学院」となります。
(→ survey_stringという変数に、秋拓技術学院という文字列が格納されます)
「起動」ボタンをクリックすることでジョブが実行されます。

質問の回答の取得方法

Surveyの作成と実行方法まで解説しました。
では、実行したジョブで、ユーザーが入力した回答を取得する方法を見ていきましょう。

回答を取得するには、プレイブックを修正する必要があります。

回答は、質問に設定した変数に格納されるため、下記のように「”{{ survey_string }}”」と記述することで取得可能です。

---
- hosts: all
  tasks:

  - name: "Surveyの回答確認"
    debug:
      msg: "{{ survey_string }}"

では、作成したSurveyとこのプレイブックを使った実行結果を見てみます。

TASK [Surveyの回答確認] *************************************************************
ok: [localhost] => {
    "msg": "秋拓技術学院"
}

先程の「実行方法」で入力した「秋拓技術学院」が取得されていますね。
このようにプレイブックに変数名を記述することで簡単に取得出来ます。

記事は以上です。Surveyを利用することで、1つのテンプレートで様々な処理させることが可能になります。実装の幅が広がるので是非ご利用ください。

コメント

タイトルとURLをコピーしました