Skip to content

Latest commit

 

History

History
181 lines (138 loc) · 6.96 KB

File metadata and controls

181 lines (138 loc) · 6.96 KB

演習 - Survey 機能

Read this in other languages:
uk English, japan日本語, brazil Portugues do Brasil, france Française, Español Español.

目的

Ansible Towerの Survey機能 の使用方法をデモします。Surveyは、「Prompt for Extra Variables」と同様にPlaybookに追加変数を設定しますが、ユーザーフレンドリーな質問と回答の方法で行います。Surveyでは、ユーザーの入力を検証することもできます。

ガイド

先ほど実行したジョブでは、すべてのホストにApacheをインストールしました。これを拡張してみましょう。

  • Jinja2テンプレートを持つ適切なroleを使って index.html ファイルをデプロイします。

  • index.html` テンプレートの値を収集するためのSurveyを持つ ジョブ テンプレートを作成します。

  • ジョブ テンプレート を起動します。

ヒント

Survey機能では、データに対する簡単なクエリのみを提供していますが、4つの目の原則、つまり動的データや入れ子になったメニューに基づくクエリはサポートしていません。

Apache-configuration Role

Playbook と Jinja2 テンプレートを持つ Roles は Github リポジトリ https://github.com/ansible/workshop-examplesrhel/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 付きのテンプレートを作成

ここでは Survey を含む新しいジョブテンプレートを作成します。

テンプレートの作成

  • 左のメニューでテンプレートを選択し、plus ボタンをクリック。 ジョブテンプレートを選択します。

  • 以下の情報を入力します:

Parameter Value
名前 Create index.html
ジョブタイプ Run
インベントリー Workshop Inventory
プロジェクト Workshop Project
PLAYBOOK rhel/apache/apache_role_install.yml
認証情報 Workshop Credentials
制限 web
オプション 権限昇格の有効化

注意

まだジョブテンプレートを実行しないでください!

Survey を追加する

  • ジョブテンプレートの中で、SURVEY の追加 ボタンをクリックします

  • Survey プロンプトの追加 フォームで以下を入力します

    Parameter Value
    プロンプト First Line
    回答の変数名 first_line
    回答タイプ テキスト
    • +ADDをクリックします。

    • 同じように2つ目の変数入力フォームを定義します

    Parameter Value
    プロンプト Second Line
    回答の変数名 second_line
    回答タイプ テキスト
    • +ADDをクリックします

    • 保存 をクリックし、 Survey を保存します

    • 保存 をクリックし、ジョブテンプレートを保存します

    テンプレートを起動します

    作成したジョブテンプレート Create index.html を起動してみます。

    実際の起動の際に、Survey は First LineSecond 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 によってどのように作成されたのか、よく理解しておいて下さい。


    Ansible Tower ワークショップ表紙に戻る