arista.eos-route-control

EOS 路由控制角色

arista.eos-route-control 角色为常见的 EOS 路由策略配置提供了一个抽象。 这意味着您无需编写任何 ansible 任务。 只需创建一个符合以下要求的对象,该角色将处理该对象并进行必要的配置。

此角色用于配置路由映射和静态 IPv4 路由。

安装

ansible-galaxy install arista.eos-route-control

要求

需要通过 SSH 连接到您的 Arista 设备。您可以使用任何内置的 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 地址。仅在 next_hop 为出口接口时有效
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 指定用于通过指定的transport 连接远程设备的 DNS 主机名或地址。host 的值用作传输的目标地址。
port 指定在建立与远程设备的连接时使用的端口。此值适用于 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 如果在设置为 true 时使用 SSL,仅在 transport=eapi 时应用。如果 transport=cli,则该值将被忽略。
provider 方便的方法,允许将上述所有连接参数作为字典对象传递。所有约束(必需项、选择等)必须通过单个参数或该字典中的值满足。
注意:星号 (*) 表示如果未指定,则为默认值

Ansible 变量

选择 描述
no_log true, false* 防止在剧本执行期间记录模块参数和输出。默认情况下,对于收集和保存 EOS 配置信息的任务,no_log 被设置为 true,以减少输出大小。设置为 true 可以防止输出所有内容,除了任务结果。
注意:星号 (*) 表示如果未指定,则为默认值

依赖关系

eos-route-control 角色建立在 Ansible 核心代码中包含的模块上。这些模块是在 ansible 版本 2.1 中添加的。

  • Ansible 2.1.0

示例剧本

以下示例将使用 arista.eos-route-control 角色来配置路由映射和静态路由。我们将创建一个包含我们的交换机的 hosts 文件,然后创建相应的 host_vars 文件,以及一个仅引用 eos-route-control 角色的简单剧本。 通过包含该角色,我们自动获得访问这些 EOS 功能的所有任务。这样好的一点是,如果您有一个没有任何相应配置的主机,任务将会毫无问题地被跳过。

样本主机文件:

[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 - Development Guidelinestest/arista-ansible-role-test/README)以获取更多信息,包括如何开发和运行角色开发的测试案例。

许可证

版权 (c) 2015, Arista Networks EOS+ 保留所有权利。

允许以源代码和二进制形式进行重新分发和使用,无论是否修改,但前提是满足以下条件:

  • 源代码的重新分发必须保留上述版权声明、此条件列表和以下免责声明。

  • 二进制形式的重新分发必须在分发的文档和/或其他材料中再现上述版权声明、此条件列表和以下免责声明。

  • 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+