他の言語でもお読みいただけます: 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
motddefault 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
-
追加のルーターでの確認
デモンストレーションに成功しました
- Arista EOS、Cisco IOS、JuniperJunos などの複数のネットワークオペレーティングシステムでバナーを構成するためのジョブテンプレートの作成。
network_banner
変数とbanner_type
変数に入力するためのジョブテンプレートのセルフサービス Survey の作成- 4 つのルーターすべてでジョブテンプレートを実行し、それらにバナーを同時にロードする
ラボ演習 7 を完了しました