演習 2.0 - プールメンバーの無効化

Read this in other languages: uk English, japan 日本語.

目次

目的

本演習では、ステップごとに完全なガイドを提供するのではなく、ステップごとのヒントを示した情報が提供されます。 以下を実行する Playbook を構築して、プールからノードを削除します。

解説

Step 1:

テキストエディタを使用して、disable-pool-member.ymlという名前の新しいファイルを作成します。

[student1@ansible ~]$ nano disable-pool-member.yml

vimおよびnanoは、コントロール ノードだけでなく、RDPを介してVisual StudioおよびAtomでも使用できます

Step 2:

以下の定義をdisable-pool-member.ymlに Playbook に入力します:

---
- name: Disabling a pool member
  hosts: lb
  connection: local
  gather_facts: false

Step 3

次に、タスク セクションを追加して、上記の目的のためのタスクを作成します。 一度プロバイダーを設定すると、各タスクに対して接続先サーバやユーザ・パスワードといった認証情報を定義する必要はありません。次回以降のタスクについて、本プロバイダー情報を再利用できます。

  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といった認証情報を入力する必要はありません。

Step 4

次に下記のタスクを追加します。

ヒント: 演習 1.1で実施したbigip_device_infoモジュールの利用。

Step 5

次に下記のタスクを追加します:

ヒント: 上記 Step 出力内容の loop 検索、または debug moduleの利用となります

Step 6

次に下記のタスクを追加します:

ヒント: Playbook 内で動的に各ファクト情報を簡易設定する方法はset_fact moduleの利用となります。

Step 7

次に下記のタスクを追加します:

ヒント: debug演習 1.4を参照してください。

Step 8

次に下記のタスクを追加します:

ヒント: prompts モジュールを利用してください。

Step 9

次に下記のタスクを追加します:

ヒント: when による条件分岐とループ BIG-IP pool member moduleを参照してください。

Step 10

Playbook の実行 - コントロールホストへ戻り、以下のコマンドを実行します:

[student1@ansible ~]$ ansible-playbook disable-pool-member.yml

Playbookの出力

以下のような出力となります。

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

f5bigip-gui


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