Read this in other languages:
English, 日本語, Portugues do Brasil, Française, Español.
Ansible Towerの Survey機能 の使用方法をデモします。Surveyは、「Prompt for Extra Variables」と同様にPlaybookに追加変数を設定しますが、ユーザーフレンドリーな質問と回答の方法で行います。Surveyでは、ユーザーの入力を検証することもできます。
先ほど実行したジョブでは、すべてのホストにApacheをインストールしました。これを拡張してみましょう。
-
Jinja2テンプレートを持つ適切なroleを使って
index.html
ファイルをデプロイします。 -
index.html` テンプレートの値を収集するためのSurveyを持つ ジョブ テンプレートを作成します。
-
ジョブ テンプレート を起動します。
ヒント
Survey機能では、データに対する簡単なクエリのみを提供していますが、4つの目の原則、つまり動的データや入れ子になったメニューに基づくクエリはサポートしていません。
Playbook と Jinja2 テンプレートを持つ Roles は Github リポジトリ https://github.com/ansible/workshop-examples の rhel/apache
にあります。
Github UIに移動して、 apache_role_install.yml
の中身を見てみてください。単に Role を参照しているだけです。 Role は roles/role_apache
サブディレクトリに存在します。
- Role 内の jinja2 テンプレート
templates/index.html.j2
内に定義された二つの変数を確認します。変数は{{…?}}
で定義されるんでしたね。 - また、メインのタスクを担う、
tasks/main.yml
の中で、template からファイルをコピーするタスクをチェックします。
この Playbook は何をやっているのでしょうか?これはテンプレート (src) から、対象ホスト上にファイル (dest) としてコピーしています。
この Role は、Apache の静的な設定もデプロイします。前の章で行われた全ての変更が上書きされ、今回の演習が問題なく実行できることを保証するためのものです。
この Playbook と Role は apache_install.yml
と同じ Github リポジトリに配置されているため、この演習用に新しいプロジェクトを作成する必要はありません。
ここでは Survey を含む新しいジョブテンプレートを作成します。
Parameter | Value |
---|---|
名前 | Create index.html |
ジョブタイプ | Run |
インベントリー | Workshop Inventory |
プロジェクト | Workshop Project |
PLAYBOOK | rhel/apache/apache_role_install.yml |
認証情報 | Workshop Credentials |
制限 | web |
オプション | 権限昇格の有効化 |
注意
まだジョブテンプレートを実行しないでください!
-
ジョブテンプレートの中で、SURVEY の追加 ボタンをクリックします
-
Survey プロンプトの追加 フォームで以下を入力します
Parameter Value プロンプト First Line 回答の変数名 first_line
回答タイプ テキスト -
+ADDをクリックします。
-
同じように2つ目の変数入力フォームを定義します
Parameter Value プロンプト Second Line 回答の変数名 second_line
回答タイプ テキスト -
+ADDをクリックします
-
保存 をクリックし、 Survey を保存します
-
保存 をクリックし、ジョブテンプレートを保存します
作成したジョブテンプレート Create index.html を起動してみます。
実際の起動の際に、Survey は First Line と Second Line の2つについて入力を要求します。お好きなテキストを入力して、「次へ」をクリックします。次のウィンドウに入力した値が表示されます。問題なければ、「起動」をクリックしてジョブを実行します。
ヒント
入力した 2つの値がジョブ実行画面の左下の 追加変数に表示されていることを確認します。
ジョブが完了したら、Apache ホームページを確認してください。確認するのは、そう、
node1
です。 Tower Server の SSH コンソールの curl コマンドで確認したもよいですし、ブラウザで直接 node1 に接続してみてもOKです。$ curl http://<node1> <body> <h1>Apache is running fine</h1> <h1>This is survey field "First Line": line one</h1> <h1>This is survey field "Second Line": line two</h1> </body>
この index.html ファイルが Playbook と Survey によってどのように作成されたのか、よく理解しておいて下さい。
-