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にメールしてください。

プロジェクトについて

Role for managing MLAG configuration

インストール
ansible-galaxy install arista.eos-mlag
ライセンス
bsd-3-clause
ダウンロード
12.1k
所有者
Applications developed and supported by Arista EOS+