他の言語でもお読みいただけます : English、
日本語.
- 目的 - ガイド - Playbook の出力 - ソリューション - ソリューションの確認
BIG-IP irule モジュール を使用して iRules を BIG-IP に追加し、続いて iRules を仮想サーバーにアタッチする方法を説明します。
VSCode を使用して、左側のペインの新規ファイルアイコンをクリックして、bigip-irule.yml
という名前の新しいファイルを作成します。
Ansible Playbook は YAML ファイルです。YAML は構造化されたエンコーディング形式であり、人間が非常に読みやすくなっています (JSON 形式のサブセットとは異なり)。
次のプレイ定義を bigip-irule.yml
に入力します。
---
- name: BIG-IP SETUP
hosts: lb
connection: local
gather_facts: false
- ファイル上部の
---
は、これが YAML ファイルであることを示しています。 -hosts: f5
は、プレイが F5 BIG-IP デバイスでのみ実行されることを示します。 -connection: local
は、(自身に SSH 接続するのではなく)ローカルで実行するように Playbook に指示します -gather_facts: no
はファクト収集を無効にします。この Playbook では、ファクト変数を使用しません。
保存して、エディターを終了します。
'irule1' と 'irule2' という名前のダミーの irules を 2 つ作成します。
irule1
の内容
when HTTP_REQUEST {
log local0. "Accessing iRule1"
}
ファイルを保存します。
irule2
の内容
when HTTP_REQUEST {
log local0. "Accessing iRule2"
}
ファイルを保存します。
次に、bigip-irule.yml
を再度開き、task
を追加します。このタスクでは、bigip-irule
を使用して irules
を BIG-IP に追加します。
{% raw %}
vars:
irules: ['irule1', 'irule2']
tasks:
- name: ADD iRules
f5networks.f5_modules.bigip_irule:
provider:
server: "{{private_ip}}"
user: "{{ansible_user}}"
password: "{{ansible_password}}"
server_port: 8443
validate_certs: false
module: "ltm"
name: "{{item}}"
content: "{{lookup('file','{{item}}')}}"
with_items: "{{irules}}"
{% endraw %}
プレイはタスクのリストです。タスクとモジュールには 1:1 の相関があります。Ansible モジュールは再利用可能なスタンドアロンのスクリプトで、Ansible API または ansibleやansible-playbook プログラムで使用できます。これらは、終了する前に JSON 文字列を stdout に出力して Ansible に情報を返します。
A variable 'irules'
は、2 つの irules ('irule1' と irule2') で定義されるリストです。name: ADD iRules
は、ターミナル出力に表示されるユーザー定義の説明です。bigip_irule:
は、使用するモジュールをタスクに指示します。server: "{{private_ip}}"
パラメーターは、F5 BIG-IP IP アドレスに接続するようにモジュールに指示します。このアドレスは、インベントリーの変数private_ip
として保存されますprovider:
パラメーターは、BIG-IP の接続詳細のグループです。user: "{{ansible_user}}"
パラメーターは、F5 BIG-IP デバイスにログインするためのユーザー名をモジュールに指示しますpassword: "{{ansible_password}}"
パラメーターは、F5 BIG-IP デバイスにログインするためのパスワードをモジュールに指示しますserver_port: 8443
パラメーターは、F5 BIG-IP デバイスに接続するためのポートをモジュールに指示しますmodule: ltm
パラメーターは、iRule が対象となっている BIG-IP モジュール (ltm) をモジュールに指示します。name: "{{item}}"
パラメーターは、モジュールに対し、'irule1' と 'irule2' という名前の iRule を作成するように指示します。content: "{{lookup('file','{{item}}')}}"
パラメーターは、[lookup プラグイン]https://docs.ansible.com/ansible/latest/plugins/lookup.html) を使用して iRule に追加するコンテンツをモジュールに指示します。validate_certs: "no"
パラメーターは、SSL 証明書を検証しないようにモジュールに指示します。これはラボなので、デモ目的のためにのみ使用されます。loop:
は、提供された一覧をループするようにタスクに指示を出します。ここでは、このリストは iRules の一覧です。
次に、task
を上記の Playbook に追加します。このタスクは、bigip_virtual_server
を使用して iRules を
BIG-IP 上の仮想サーバーにアタッチします。
{% raw %}
- name: ATTACH iRules TO VIRTUAL SERVER
f5networks.f5_modules.bigip_virtual_server:
provider:
server: "{{private_ip}}"
user: "{{ansible_user}}"
password: "{{ansible_password}}"
server_port: 8443
validate_certs: false
name: "vip"
irules: "{{irules}}"
{% endraw %}
irules: "{{irules}}
は、仮想サーバー「irule1」および「irule2」にアタッチされる irules の一覧です。
BIG-IP virtual_Server モジュール の詳細または参照 演習 1.5
ファイルを保存します。
Playbook を実行します。VS Code サーバーのターミナルに戻り、以下を実行します。
[student1@ansible ~]$ ansible-navigator run bigip-irule.yml --mode stdout
[student1@ansible]$ ansible-navigator run bigip-irule.yml --mode stdout
PLAY [BIG-IP SETUP] ***********************************************************
TASK [ADD iRules] *******************************************************************************
changed: [f5] => (item=irule1)
changed: [f5] => (item=irule2)
TASK [ATTACH iRules TO VIRTUAL SERVER] ****************************************
changed: [f5]
PLAY RECAP *******************************************************************************
f5 : ok=2 changed=2 unreachable=0 failed=0
完成した Ansible Playbook が、回答キーとしてここで提供されています。bigip-irule.yml を表示するには、ここをクリックしてください。
設定した iRules および仮想サーバー を表示するには、Web ブラウザーを使用して F5 ロードバランサーにログインします。
/home/studentX/networking_workshop/lab_inventory/hosts
ファイルから F5 ロードバランサーの IP 情報を取得し、https://X.X.X.X:8443/ のように入力します。
BIG-IP のログイン情報: - ユーザー名: admin - パスワード: インストラクターから提供、デフォルトは ansible
iRules の一覧は、左側のメニューからナビゲーションして探すことができます。Local Traffic -> iRules -> iRules List をクリックします。
仮想サーバーを表示するには、Local Traffic -> Virtual Servers をクリックし、Virtual Server をクリックしてから 'resoruces' タブをクリックし、仮想サーバーにアタッチされた iRules を表示します
You have finished this exercise. Click here to return to the lab guide