arista.eos-route-control

ルートコントロール役割 for EOS

arista.eos-route-control 役割は、一般的なEOSルーティングポリシー設定の抽象化を作成します。これにより、Ansibleのタスクを書く必要はありません。以下の要件に合ったオブジェクトを作成するだけで、この役割がそのオブジェクトを受け取り、必要な設定を行います。

この役割は、ルートマップと静的IPv4ルートを設定するために使用されます。

インストール

ansible-galaxy install arista.eos-route-control

要件

Aristaデバイスに接続するためにはSSH接続が必要です。内蔵のeos接続変数や便利なproviderディクショナリを使用できます。

役割変数

この役割のタスクは、以下で説明するroutemapsipv4_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
ライセンス
bsd-3-clause
ダウンロード
12k
所有者
Applications developed and supported by Arista EOS+