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 Guidelines(test/arista-ansible-role-test/README)。
许可证
版权所有 (c) 2015, Arista Networks EOS+ 保留所有权利。
在遵守以下条件的前提下,允许以源代码和二进制形式进行重新分发和使用,无论是否进行修改:
源代码的重新分发必须保留上述版权声明、此限制列表和以下免责声明。
以二进制形式的重新分发必须在与发行版一起提供的文档和/或其他材料中重复上述版权声明、此限制列表和以下免责声明。
未经事先书面许可,Arista或其贡献者的名称不得用于支持或推广基于该软件的产品。
此软件由版权所有者和贡献者“按原样”提供,并且任何明示或暗示的保证,包括但不限于对适销性和特定用途的隐含保证均不予承认。在任何情况下,版权持有者或贡献者对因使用该软件而导致的任何直接、间接、附带、特殊、示范或后果性损害 (包括但不限于替代商品或服务的采购; 失去使用、数据或利润; 或业务中断) 不承担任何责任,即使已被告知可能发生此类损害。
作者信息
请通过我们的GitHub仓库提出任何问题或通过电子邮件与我们联系:ansible-dev@arista.com
ansible-galaxy install arista.eos-mlag