他の言語でもお読みいただけます: English, 日本語, Español.
自動コントローラーsurvey 機能 の使用のデモンストレーションを行います。Survey は、「Prompt for Extra Variables (追加変数のプロンプト)」と同様に Playbook の追加変数を設定しますが、ユーザーが使いやすい質問と回答を使ってこれを実行します。また、Survey ではユーザー入力を検証することもできます。
Web UI を開き、左側のメニューの Templates
リンクをクリックします。
青い Add
ボタンをクリックして Add job template を選択し、新しいジョブテンプレートを作成します
(Workflow Template
ではなく必ず Job Template
を選択してください)
Parameter | Value |
---|---|
Name | Network-Banner |
Job Type | Run |
Inventory | Workshop Inventory |
Project | Workshop Project |
Execution Environment | network workshop execution environment |
Playbook | playbooks/network_banner.yml |
Credential | Workshop Credential |
下にスクロールして、青い Save
ボタンをクリックします。
network_banner.yml
Ansible Playbook は次のようになります。
---
- name: set router banners
hosts: routers
gather_facts: no
tasks:
- name: load banner onto network device
vars:
- network_banner: "{{ net_banner | default(None) }}"
- banner_type: "{{ net_type | default('login') }}"
name: "../roles/banner"
注記:
https://github.com/network-automation/toolkit で Ansible Playbook を確認することもできます
ロール banner には、非常に単純な main.yml
ファイルがあります。
- name: configure banner include_tasks: "{{ ansible_network_os }}.yml"
ansible_network_os
変数は、ネットワーク OS をパラメーター化し、ベンダーに依存しない playbook
を作成するために使用されています。
junos デバイスを使用している場合、この Playbook は junos.yml
と呼ばれるタスクファイルを要求します。IOS-XE
デバイスを使用している場合、このプレイブックは ios.yml
と呼ばれるタスクファイルを要求します。このファイルには、プラットフォーム固有のタスクが含まれます。
---
- name: add the junos banner
junos_banner:
text: "{{ network_banner }}"
banner: "{{ banner_type }}"
注記:
この Playbook の ios、nxos、eos、およびjunos 用に作成されたタスクファイルがあることに注意してください。
また、2 つの変数をタスクファイルに渡していることにも注意してください。
network_banner
: この変数は net_banner
変数を使用して入力されます
banner_type
: この変数には net_type
という名前の変数が入力されます
このステップでは、ユーザー入力フォームの “survey” を作成して、ユーザーからの入力を収集し、変数 net_banner
と
banner_type
の値を入力します
Network-Banner ジョブテンプレート内の Survey タブをクリックします
青い Add ボタンをクリックします
以下に記入してください。
Parameter | Value |
---|---|
Question | Please enter the banner text |
Description | Please type into the text field the desired banner |
Answer Variable Name | net_banner |
Answer type | Textarea |
Required | Checkmark |
例:
緑色の Add
ボタンをクリックして別の質問を作成します
次に、banner_type
を収集するための調査プロンプトを作成します。これは “motd” または “login”
のいずれかになり、上記のプレイブックに従ってデフォルトで “login” になります。
Parameter | Value |
---|---|
Question | Please enter the banner type |
Description | Please choose an option |
Answer Variable Name | net_type |
Answer type | Multiple Choice(single select) |
Multiple Choice Options | login motd |
default answer | login |
Required | Checkmark |
例:
保存をクリックします。
トグルスイッチをクリックして Survey をアクティブにし、オンにします
Back to Templates をクリックします
ロケットをクリックして、ジョブテンプレートを起動します。
ジョブはすぐにユーザーに、バナーとタイプを設定するように促します。
ルーターに必要なバナーメッセージを入力します。
login
と motd
のどちらかを選択します。
次へをクリックして、Survey が Ansible Playbook の追加の変数として入力をどのようにレンダリングしたかを確認します。この例のバナーテキストは “This router was configured by Ansible” に設定されています。
青い Launch ボタンをクリックして、ジョブを開始します。
ジョブを最後まで実行します。何かが失敗した場合は、インストラクターに知らせてください。
ルーターの 1 つにログインして、バナーの設定を確認します
[student@ansible]$ ssh rtr1
ログイン時にバナーが表示されます。上記の例を以下に示します。
[student@ansible-1 ~]$ ssh rtr1
Warning: Permanently added 'rtr1,3.237.253.154' (RSA) to the list of known hosts.
This router was configured by Ansible
追加のルーターでの確認
デモンストレーションに成功しました
network_banner
変数と banner_type
変数に入力するためのジョブテンプレートのセルフサービス Survey の作成ラボ演習 7 を完了しました