Read this in other languages:  English,
 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により以下のように表示されます。黒いひし形のマークは、そのノードがオフラインにされたことを示します。

これで本演習は終わりです。演習ガイドへ戻る