arista.eos-mlag

MLAG角色用于EOS

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 字符串(必需) 用于对等连接的Port-Channel
peer_link_mode 选择:trunk*, access 对等连接的交换端口模式
peer_link_lacp_mode 选择:active*, passive, disabled 每个Port-Channel成员的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 指定是否将角色执行产生的任何更改写入内存中的运行配置,并将配置复制到启动配置。
注意:星号(*)表示如果未指定,则为默认值

连接变量

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 如果transport=eapi时设置为true,则配置使用SSL。如果transport=cli,则忽略此值。
provider 方便的方法,允许将所有上述连接参数作为字典对象传递。所有约束(必需、选择等)必须通过单个参数或此字典中的值来满足。
注意:星号(*)表示如果未指定,则为默认值

Ansible变量

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

依赖

eos-bridging角色基于包含在核心Ansible代码中的模块。这些模块在Ansible版本2.1中添加。

  • Ansible 2.1.0

示例剧本

以下示例将使用arista.eos-mlag角色在两个叶交换机上完全设置MLAG,而不需要编写任何任务。我们将创建一个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 Guidelinestest/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+