arista.eos-mlag
MLAGの役割について
arista.eos-mlagロールは、一般的なMLAG設定の抽象化を作成します。 これは、Ansibleのタスクを自分で書く必要がないことを意味します。以下の要件に 一致するオブジェクトを作成すれば、このロールがそのオブジェクトを取り込み、必要な 設定を実行します。
インストール
ansible-galaxy install arista.eos-mlag
要件
Aristaデバイスに接続するためのSSH接続が必要です。組み込みのeos接続変
数を使用するか、便利なprovider
辞書を使用できます。
ロール変数
mlag
辞書には以下のキーが含まれています:
キー | 種類 | メモ |
---|---|---|
mlag_domain_id | 文字列 | MLAGドメインの名前 |
mlag_trunk_group | 文字列 | VLANに割り当てられたトランクグループ |
mlag_shutdown | 真偽値: true, false* | MLAG設定の有効/無効 |
local_if_vlan | 文字列 (必須) | ピアリンクのVLAN、例: Vlan1024 |
local_if_vlan_description | 文字列 | local_if_vlanの説明 |
local_if_ip_address | 文字列 (必須) | local_if_vlanのIPアドレス |
local_if_disable_spanning_tree | 真偽値: true*, false | ピアVLANのSTPの有効/無効 |
peer_address | 文字列 (必須) | MLAGピアのIPアドレス |
peer_link_if | 文字列 (必須) | ピアリンクに使用されるポートチャネル |
peer_link_mode | 選択肢: trunk*, access | ピアリンク用のスイッチポートモード |
peer_link_lacp_mode | 選択肢: active*, passive, disabled | 各ポートチャネルメンバーのLACPモード |
peer_link_enable | 真偽値: true*, false | ピアリンクメンバーインターフェースの有効/無効 |
peer_link_members | (リスト) | ピアリンクを構成するインターフェースのリスト |
state | 真偽値: present*, absent | MLAG関連の設定を追加または削除するかどうか。 absentに設定すると、local_if_vlanやpeer_link_ifを含むすべての設定が削除され、MLAG設定ブロックがデフォルトに戻ります。peer_link_membersのインターフェースはデフォルトのスイッチポート設定にリセットされます。 |
注: アスタリスク(*)は、指定がない場合のデフォルト値を示します。
設定変数
キー | 選択肢 | 説明 |
---|---|---|
eos_save_running_config | true*, false | ロールの実行からの変更をメモリに書き込むかどうかを指定します。設定をstartup-configにコピーします。 |
注: アスタリスク(*)は、指定がない場合のデフォルト値を示します。
接続変数
Ansible EOSロールは、インベントリ内のノードとの通信を確立するために 次の接続情報を必要とします。この情報は、Ansibleのgroup_varsまたはhost_vars ディレクトリ、またはプレイブック自体内に存在することができます。
キー | 必須 | 選択肢 | 説明 |
---|---|---|---|
host | はい | 指定されたtransport経由でリモートデバイスに接続するためのDNSホスト名またはアドレスを指定します。hostの値は、transportの宛先アドレスとして使用されます。 | |
port | いいえ | リモートデバイスに接続するためのポートを指定します。この値は、transportの受け入れ可能な値に適用されます。タスク内で指定がない場合、ポート値は適切なtransportの標準ポートにデフォルト設定されます (cli=22, http=80, https=443)。 | |
username | いいえ | リモートデバイスへの接続を認証するために使用するユーザー名を設定します。usernameの値は、使用されるtransportに応じてCLIログインまたはeAPI認証のいずれかを認証するために使用されます。タスク内で指定がない場合は、環境変数ANSIBLE_NET_USERNAMEの値が使用されます。 | |
password | いいえ | リモートデバイスへの接続を認証するために使用するパスワードを指定します。これはtransportの受け入れ可能な値のために一般的に使用される引数です。タスク内で指定がない場合は、環境変数ANSIBLE_NET_PASSWORDの値が使用されます。 | |
ssh_keyfile | いいえ | リモートデバイスへの接続を認証するために使用するSSHキーのファイルを指定します。この引数はtransport=cliの場合のみ使用されます。タスク内で指定がない場合は、環境変数ANSIBLE_NET_SSH_KEYFILEの値が使用されます。 | |
authorize | いいえ | yes, no* | モジュールにリモートデバイスで特権モードに入るよう指示します。指定がない場合、デバイスは非特権モードで全てのコマンドを実行しようとします。タスク内で指定がない場合は、環境変数ANSIBLE_NET_AUTHORIZEの値が使用されます。 |
auth_pass | いいえ | リモートデバイスで特権モードに入るために必要な場合に使用するパスワードを指定します。authorize=noの場合、この引数は何もしません。タスク内で指定がない場合は、環境変数ANSIBLE_NET_AUTH_PASSの値が使用されます。 | |
transport | はい | cli*, eapi | リモートデバイスに接続する時に使用するトランスポート接続を設定します。transport引数はCLI (ssh)またはeAPI経由でデバイスへの接続をサポートします。 |
use_ssl | いいえ | yes*, no | transport=eapiのときのみ、SSLを使用するようにトランスポートを設定します。transport=cliの場合、この値は無視されます。 |
provider | いいえ | 上記の全ての接続引数を辞書オブジェクトとして渡す便利なメソッドです。必要な制約 (必須、選択肢など) は、個別の引数またはこの辞書内の値によって満たされる必要があります。 |
注: アスタリスク(*)は、指定がない場合のデフォルト値を示します。
Ansible変数
キー | 選択肢 | 説明 |
---|---|---|
no_log | true, false* | プレイブックの実行中にモジュール引数と出力をログに記録しないようにします。デフォルトでは、no_logはEOS設定情報を収集して保存するタスクに対してtrueに設定されています。タスク結果以外の全ての出力を防ぐためにはtrueに設定してください。 |
注: アスタリスク(*)は、指定がない場合のデフォルト値を示します。
依存関係
eos-bridgingロールは、コアAnsibleコードに含まれるモジュールに基づいています。 これらのモジュールはAnsibleバージョン2.1で追加されました。
- Ansible 2.1.0
サンプルプレイブック
以下の例は、arista.eos-mlagロールを使用して、タスクを書かずに
2つのリーフスイッチでMLAGを完全に設定します。2つのリーフスイッチを持つ
hosts
ファイルを作成し、それに対応するhost_vars
ファイルをそれぞれの
リーフに作成し、MLAGロールのみを参照するシンプルなプレイブックを作成します。
ロールを含めることで、MLAGを設定するための全てのタスクに自動的にアクセスできます。
MLAG設定のないホストがある場合、そのタスクは問題なくスキップされます。
サンプルhostsファイル:
[leafs]
leaf1.example.com
leaf2.example.com
サンプルhost_vars/leaf1.example.com
provider:
host: "{{ inventory_hostname }}"
username: admin
password: admin
use_ssl: no
authorize: yes
transport: cli
mlag:
mlag_domain_id: mlag1
mlag_trunk_group: mlagpeer
mlag_shutdown: false
local_if_vlan: Vlan1024
local_if_vlan_description: Peer MLAG Link
local_if_ip_address: 10.0.0.1/30
local_if_disable_spanning_tree: true
peer_address: 10.0.0.2
peer_link_if: Port-Channel10
peer_link_mode: trunk
peer_link_lacp_mode: active
peer_link_enable: true
peer_link_members:
- Ethernet3
- Ethernet4
サンプルhost_vars/leaf2.example.com
host: "{{ inventory_hostname }}"
username: admin
password: admin
use_ssl: no
authorize: yes
transport: cli
no_log: true
mlag:
mlag_domain_id: mlag1
mlag_trunk_group: mlagpeer
mlag_shutdown: false
local_if_vlan: Vlan1024
local_if_ip_address: 10.0.0.2/30
local_if_disable_spanning_tree: true
peer_address: 10.0.0.1
peer_link_if: Port-Channel10
peer_link_mode: trunk
peer_link_lacp_mode: active
peer_link_enable: true
peer_link_members:
- Ethernet3
- Ethernet4
リーフスイッチでMLAGを有効にするための簡単なプレイブック、leaf.yml
- hosts: leafs
roles:
- arista.eos-mlag
次に実行します:
ansible-playbook -i hosts leaf.yml
開発者情報
開発への貢献は歓迎します。詳細な情報やロール開発のためのテストケースを開発して実行する方法については、Arista Roles for Ansible - Development Guidelines (test/arista-ansible-role-test/README)を参照してください。
ライセンス
著作権 (c) 2015, Arista Networks EOS+ 全著作権所有。
ソースおよびバイナリ形式での再配布と使用は、変更の有無にかかわらず、以下の条件を満たす限り許可されます。
ソースコードの再配布は上記の著作権通知、条件のリスト、および以下の免責事項を保持しなければなりません。
バイナリ形式の再配布には、上記の著作権通知、条件リスト、及び以下の免責事項を付属の文書やその他の資料に再現しなければなりません。
Aristaの名前またはその貢献者の名前を、このソフトウェアから派生した製品を推奨または宣伝するために使用してはなりません。これには具体的な事前の書面による許可が必要です。
このソフトウェアは著作権者および貢献者によって「現状のまま」提供されており、明示または暗黙の保証、商品性や特定の目的に対する適合性を含むがこれに限られない保証は否認されています。著作権者または貢献者は、契約、不法行為、その他の理由にかかわらず、事前にその可能性について知らされていた場合でも、このソフトウェアの使用に起因するいかなる直接的、間接的、偶発的、特別、例外的、または結果的な損害(代替品の取得、使用、データの喪失、または事業の中断を含むがこれに限られない)に対して責任を負わないものとします。
著者情報
問題がある場合は、当社のGitHubリポジトリをご利用いただくか、ansible-dev@arista.comにメールしてください。
ansible-galaxy install arista.eos-mlag