arista.eos-route-control
ルートコントロール役割 for EOS
arista.eos-route-control 役割は、一般的なEOSルーティングポリシー設定の抽象化を作成します。これにより、Ansibleのタスクを書く必要はありません。以下の要件に合ったオブジェクトを作成するだけで、この役割がそのオブジェクトを受け取り、必要な設定を行います。
この役割は、ルートマップと静的IPv4ルートを設定するために使用されます。
インストール
ansible-galaxy install arista.eos-route-control
要件
Aristaデバイスに接続するためにはSSH接続が必要です。内蔵のeos接続変数や便利なprovider
ディクショナリを使用できます。
役割変数
この役割のタスクは、以下で説明するroutemaps
とipv4_static_routes
オブジェクトによって制御されます:
routemaps(リスト)各エントリーは以下のキーを含みます:
キー | タイプ | 注意事項 |
---|---|---|
name | 文字列(必須) | 管理するルートマップの名前。 |
action | 選択肢: permit, deny(必須) | ルートマップ名に関連付けられたアクション。 |
seqno | 整数(必須) | このエントリーが対応するルールのシーケンス番号。 |
description | 文字列 | このルートマップエントリーの説明。 |
match | リスト | ルートマップエントリーを定義する一致ステートメントのリスト。この一致ステートメントは「match」の単語なしで始まるリストとしてください。 |
set | リスト | ルートマップエントリーを定義するセットステートメントのリスト。このセットステートメントは「set」の単語なしで始まるリストとしてください。 |
continue | 整数 | 次に評価するルートマップの項を定義します。 |
state | 選択肢: present*, absent | ルートマップの設定の状態を設定します。 |
ipv4_static_routes(リスト)各エントリーは以下のキーを含みます:
キー | タイプ | 注意事項 |
---|---|---|
ip_dest | 文字列(必須) | 宛先IPアドレスまたはネットワーク。 |
next_hop | 文字列(必須) | ルートに関連付けられた次のホップ。 |
next_hop_ip | 文字列 | 次のルーターのIPアドレス。次のホップが出口インターフェースの場合のみ有効 |
distance | 整数 | このルートに指定された距離。状態が「present」の場合はデフォルトで1です。 |
tag | 整数 | ルートに割り当てられたタグ。状態が「present」の場合はデフォルトで0です。 |
route_name | 文字列 | ルートの説明的な名前 |
state | 選択肢: present*, absent | ルートの設定の状態を設定します。 |
注意: アスタリスク(*)は、指定がない場合のデフォルト値を示します
設定変数
キー | 選択肢 | 説明 |
---|---|---|
eos_save_running_config | true*, false | 役割の実行によって生じた変更をメモリに書き込むかどうかを指定します。設定をスタートアップ構成にコピーします。 |
注意: アスタリスク(*)は、指定がない場合のデフォルト値を示します
接続変数
Ansible EOSの役割は、ノードと通信するために以下の接続情報を必要とします。この情報は、Ansibleのgroup_varsやhost_varsディレクトリ内、またはプレイブック自体に存在できます。
キー | 必須 | 選択肢 | 説明 |
---|---|---|---|
host | はい | リモートデバイスに接続するためのDNSホスト名またはアドレスを指定します。transportの宛先アドレスとして利用されます。 | |
port | いいえ | リモートデバイスへの接続を構築する際に使用するポートを指定します。適切なtransportの共通ポートをデフォルトにします。 | |
username | いいえ | リモートデバイスへの接続認証に使用するユーザー名を設定します。 | |
password | いいえ | リモートデバイスへの接続認証に使用するパスワードを指定します。 | |
ssh_keyfile | いいえ | リモートデバイスへの接続認証に使用するSSHキーを指定します。 | |
authorize | いいえ | yes, no* | リモートデバイスでprivilegedモードに入るようモジュールに指示します。 |
auth_pass | いいえ | もしprivilegedモードに入るためのパスワードが必要な場合のためのパスワードを指定します。 | |
transport | はい | cli*, eapi | リモートデバイスに接続する際に使用する接続方法を設定します。 |
use_ssl | いいえ | yes*, no | transportがeapiの場合にのみ、接続をSSLで使用するよう設定します。 |
provider | いいえ | 上記の接続引数を辞書オブジェクトとして渡す便利なメソッドです。 |
注意: アスタリスク(*)は、指定がない場合のデフォルト値を示します
Ansible変数
キー | 選択肢 | 説明 |
---|---|---|
no_log | true, false* | プレイブック実行中にモジュールの引数と出力を記録しないようにします。 |
注意: アスタリスク(*)は、指定がない場合のデフォルト値を示します
依存関係
eos-route-control役割は、Ansibleのコアコードに含まれるモジュールに基づいています。これらのモジュールはAnsibleバージョン2.1で追加されました。
- Ansible 2.1.0
例プレイブック
以下の例では、arista.eos-route-control役割を使用してルートマップと静的ルートを設定します。スイッチが記載されたhosts
ファイルを作成し、その後に対応するhost_vars
ファイルと、eos-route-control役割を参照する簡単なプレイブックを作成します。 役割を含めることで、EOS機能を設定するためのすべてのタスクに自動的にアクセスできます。
サンプルhostsファイル:
[leafs]
leaf1.example.com
サンプルhost_vars/leaf1.example.com
provider:
host: "{{ inventory_hostname }}"
username: admin
password: admin
use_ssl: no
authorize: yes
transport: cli
routemaps:
- name: RM-1
action: permit
seqno: 10
description: 優れたルートマップ
match:
- as 1000
- source-protocol bgp
continue: 20
- name: RM-1
action: permit
seqno: 20
description: 優れたルートマップ
set:
- distance 50
- tag 100
ipv4_static_routes:
- ip_dest: 0.0.0.0/0
next_hop: Management1
next_hop_ip: 172.16.130.2
route_name: デフォルト
tag: 100
簡単なプレイブック、leaf.yml
- hosts: leafs
roles:
- arista.eos-route-control
次に、実行します:
ansible-playbook -i hosts leaf.yml
開発者情報
開発の貢献を歓迎します。詳細については、Arista Roles for Ansible - 開発ガイドライン(test/arista-ansible-role-test/README)をご覧ください。
ライセンス
Copyright (c) 2015, Arista Networks EOS+ 全ての権利 reserved.
このソフトウェアの再配布及び使用は、改変の有無にかかわらず、以下の条件が満たされる限り許可されます:
ソースコードの再配布は上記の著作権表示及び以下の条件を維持すること。
バイナリ形式での再配布は、上記の著作権表示、以下の条件及び免責事項を含む文書またはその他の資料で再現すること。
Aristaの名前またはその貢献者の名前を、このソフトウェアから派生した製品の推奨または宣伝に使用することはできません。
このソフトウェアは著作権保有者及び貢献者によって「現状のまま」提供され、明示または暗示のいかなる保証も否認されます。
著者情報
問題がある場合は、私たちのGitHubリポジトリを通じて報告するか、ansible-dev@arista.comまでメールしてください。
Role for managing EOS Routemaps and IPv4 static routing configuration
ansible-galaxy install arista.eos-route-control