Skip to content

Latest commit

 

History

History
197 lines (139 loc) · 6.93 KB

File metadata and controls

197 lines (139 loc) · 6.93 KB

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

他の言語でもお読みいただけます :uk Englishjapan 日本語.

目次

目的

この最後の演習では、ステップバイステップの順を追った説明ではなく、各ステップのヒントと共にフレームワークについて説明します。

プールからのノードの削除を説明します。次の Playbook をビルドします。

  • BIG-IP にあるプール用に、BIG-IP からファクトを取得する(この例では 1 つのプールのみが存在します)
  • 利用可能なプールを表示する
  • ファクトとしてプール名を保存する
  • プール => IP およびポート情報に属するすべてのプールメンバーをターミナルウインドウに表示する
  • プールの特定のメンバーまたはすべてのメンバーを無効にするようにユーザーに要求する
  • 適切なプールメンバーを強制的にオフラインにする

ガイド

ステップ 1:

VSCode を使用して、左側のペインの新規ファイルアイコンをクリックして、disable-pool-member.yml という名前の新しいファイルを作成します。

picture of create file icon

ステップ 2:

次のプレイ定義を disable-pool-member.yml に入力します。

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

ステップ 3

tasks セクションを追加してからプロバイダーのファクトを設定します。プロバイダーを設定したら、server/user/password/server_port および validate_certs 情報を各タスクに提供する代わりに、将来のタスクでこのキーを再利用できます。

  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

今後は、各モジュールに server_ip/user/password などを渡す必要はありません。

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

ステップ 4

次に、以下に挙げる目的のためにタスクを追加します。

  • サブセット ltm-pools 用に BIG-IP からファクトを取得する

ヒント: 演習 1.1 の bigip_device_info モジュールを使用してみます

ステップ 5

次に、以下に挙げる目的のためにタスクを追加します。

  • ターミナルウィンドウにプール情報を表示する

ヒント: 上記のステップの出力で loop する方法を思い出してください。デバッグモジュール を使用するのも忘れないでください

ステップ 6

次に、以下に挙げる目的のためにタスクを追加します。

  • プール名をファクトとして保存する

ヒント: Playbook 内でファクト変数を動的に設定する簡単な方法は、set_fact モジュール を使用することです

ステップ 7

次に、以下に挙げる目的のためにタスクを追加します。

  • プールに属するメンバーを表示する

ヒント: デバッグ を使用し、演習 1.4 を参照することを思い出してください

ステップ 8

次に、以下に挙げる目的のためにタスクを追加します。

  • プールに属するすべてのメンバーを無効にする

ヒント: BIG-IP プールメンバーモジュール を使用するのを忘れないでください

ステップ 9

Playbook を実行します。VS Code サーバーのターミナルに戻り、以下を実行します。

[student1@ansible ~]$ ansible-navigator run disable-pool-member.yml --mode stdout

Playbook の出力

出力は次のようになります。

[student1@ansible ~]$ ansible-navigator run disable-pool-member.yml --mode stdout

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

-- You have finished this exercise. Click here to return to the lab guide