Read this in other languages: English, 日本語.
本演習では、ステップごとに完全なガイドを提供するのではなく、ステップごとのヒントを示した情報が提供されます。 以下を実行する Playbook を構築して、プールからノードを削除します。
テキストエディタを使用して、disable-pool-member.yml
という名前の新しいファイルを作成します。
[student1@ansible ~]$ nano disable-pool-member.yml
vim
およびnano
は、コントロール ノードだけでなく、RDPを介してVisual StudioおよびAtomでも使用できます
以下の定義をdisable-pool-member.yml
に Playbook に入力します:
---
- name: Disabling a pool member
hosts: lb
connection: local
gather_facts: false
次に、タスク セクションを追加して、上記の目的のためのタスクを作成します。 一度プロバイダーを設定すると、各タスクに対して接続先サーバやユーザ・パスワードといった認証情報を定義する必要はありません。次回以降のタスクについて、本プロバイダー情報を再利用できます。
tasks:
- name: Setup provider
set_fact:
provider:
server: "{{private_ip}}"
user: "{{ansible_user}}"
password: "{{ansible_password}}"
server_port: 8443
validate_certs: false
プロバイダーは以下のように利用します:
f5networks.f5_modules.bigip_device_info:
provider: "{{provider}}"
gather_subset:
- ltm-pools
各モジュールで、接続先サーバやUser/passwordといった認証情報を入力する必要はありません。
次に下記のタスクを追加します。
ヒント: 演習 1.1で実施したbigip_device_infoモジュールの利用。
次に下記のタスクを追加します:
ヒント:
上記 Step 出力内容の loop
検索、または debug moduleの利用となります
次に下記のタスクを追加します:
ヒント: Playbook 内で動的に各ファクト情報を簡易設定する方法はset_fact moduleの利用となります。
次に下記のタスクを追加します:
次に下記のタスクを追加します:
ヒント: prompts モジュールを利用してください。
次に下記のタスクを追加します:
ヒント: when による条件分岐とループ と BIG-IP pool member moduleを参照してください。
Playbook の実行 - コントロールホストへ戻り、以下のコマンドを実行します:
[student1@ansible ~]$ ansible-playbook disable-pool-member.yml
以下のような出力となります。
[student1@ansible ~]$ ansible-playbook disable-pool-member.yml
PLAY [Disabling a pool member] ******************************************************************************************************************************
TASK [Setup provider] *******************************************************************************************************************************
ok: [f5]
TASK [Query BIG-IP facts] ***********************************************************************************************************************************
changed: [f5]
TASK [Display Pools available] ******************************************************************************************************************************
ok: [f5] => (item=http_pool) => {
"msg": "http_pool"
}
TASK [Store pool name in a variable] ************************************************************************************************************************
ok: [f5] => (item=None)
ok: [f5]
TASK [Show members belonging to pool http_pool] *************************************************************************************************************
ok: [f5] => (item=node1:80) => {
"msg": "node1:80"
}
ok: [f5] => (item=node2:80) => {
"msg": "node2:80"
}
TASK [pause] ************************************************************************************************************
[pause]
To disable a particular member enter member with format member_name:port
To disable all members of the pool enter 'all':
node1:80
TASK [Disable ALL pool members] ************************************************************************************************************************
skipping: [f5] => (item=node1:80)
skipping: [f5] => (item=node2:80)
TASK [Disable pool member node1:80] *************************************************************************************************************************
changed: [f5]
PLAY RECAP **************************************************************************************************************
f5 : ok=7 changed=2 unreachable=0 failed=0
問題がある場合は講師より解答が提供されます。GUIにより以下のように表示されます。黒いひし形のマークは、そのノードがオフラインにされたことを示します。
これで本演習は終わりです。演習ガイドへ戻る