community.network.cv_server_provision 模块 – 通过对应用于交换机的 Arista CloudVision Portal 配置片段应用或移除模板配置来配置服务器端口。

注意

此模块是 community.network 集合 (版本 5.1.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.network。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在剧本中使用它,请指定: community.network.cv_server_provision

注意

community.network 集合已被弃用,并将从 Ansible 12 中移除。请参阅 讨论主题 获取更多信息。

已弃用

在以下版本中移除:

版本 6.0.0

原因:

此集合及其中的所有内容均未维护且已弃用。

替代方案:

未知。

概要

  • 此模块允许服务器团队为新服务器配置服务器网络端口,而无需访问 Arista CVP 或请求网络团队代为操作。提供连接到 CVP 的信息、交换机机架、新服务器连接到的端口、可选 VLAN 和操作,模块将通过 CVP 将配置应用于交换机端口。操作包括添加(将模板配置应用于端口)、移除(将接口配置恢复为默认值)和显示(返回当前端口配置,不进行任何更改)。

别名:network.cloudvision.cv_server_provision

要求

执行此模块的主机需要以下要求。

  • Jinja2

  • cvprac >= 0.7.0

参数

参数

注释

action

字符串

模块要执行的操作。操作包括添加(将指定的模板配置应用于端口)、移除(将指定的接口配置恢复为默认值)和显示(返回当前端口配置,不进行任何更改)。

选项

  • "show" ← (默认)

  • "add"

  • "remove"

auto_run

布尔值

确定模块是否执行由于交换机配置片段更改而生成的 CVP 任务的标志。当执行添加或移除操作导致交换机配置片段更改时,CVP 将生成一个需要执行的任务才能将配置应用于交换机。如果此选项为 True,则模块将确定配置更改创建的任务编号,执行它并等待任务完成。如果选项为 False,则任务将保留在 CVP 中的“待处理”状态,以便网络管理员查看和执行。

选项

  • false ← (默认)

  • true

host

字符串 / 必需

要连接到的 CVP 节点的主机名或 IP 地址。

password

字符串 / 必需

将用于连接到 CVP 以进行 API 调用的用户的密码。

port

字符串

对 CVP 节点进行 API 调用时使用的端口号。这将默认为指定协议的默认端口。http 为端口 80,https 为端口 443。

port_vlan

字符串

应应用于此服务器端口的 VLAN。此参数取决于支持使用单 VLAN 配置的适当模板。如果指定的模板指定的端口 VLAN 不支持此功能,则模块将退出且不进行任何更改。如果指定的模板需要端口 VLAN 但未指定端口 VLAN,则模块将退出且不进行任何更改。

protocol

字符串

对 CVP 进行 API 调用时使用的协议。CVP 默认使用 https,较新版本的 CVP 不再支持 http。

选项

  • "https" ← (默认)

  • "http"

server_name

字符串 / 必需

正在配置其交换机端口的服务器的主机名或标识符。

switch_name

字符串 / 必需

正在为待配置的服务器配置交换机的主机名。

switch_port

字符串 / 必需

新服务器连接到的交换机上的物理端口号。

template

字符串 / 必需

指向 Jinja 格式模板文件的路径,该文件包含将应用于指定交换机端口的配置块。此模板的变量字段将在应用于交换机配置之前由模块替换。

username

字符串 / 必需

用于连接到 CVP 以进行 API 调用的用户。

示例

- name: Get current configuration for interface Ethernet2
  community.network.cv_server_provision:
    host: cvp_node
    username: cvp_user
    password: cvp_pass
    protocol: https
    server_name: new_server
    switch_name: eos_switch_1
    switch_port: 2
    template: template_file.j2
    action: show

- name: Remove existing configuration from interface Ethernet2. Run task.
  community.network.cv_server_provision:
    host: cvp_node
    username: cvp_user
    password: cvp_pass
    protocol: https
    server_name: new_server
    switch_name: eos_switch_1
    switch_port: 2
    template: template_file.j2
    action: remove
    auto_run: true

- name: Add template configuration to interface Ethernet2. No VLAN. Run task.
  community.network.cv_server_provision:
    host: cvp_node
    username: cvp_user
    password: cvp_pass
    protocol: https
    server_name: new_server
    switch_name: eos_switch_1
    switch_port: 2
    template: single_attached_trunk.j2
    action: add
    auto_run: true

- name: Add template with VLAN configuration to interface Ethernet2. Run task.
  community.network.cv_server_provision:
    host: cvp_node
    username: cvp_user
    password: cvp_pass
    protocol: https
    server_name: new_server
    switch_name: eos_switch_1
    switch_port: 2
    port_vlan: 22
    template: single_attached_vlan.j2
    action: add
    auto_run: true

返回值

常用返回值已在此处记录,以下是此模块独有的字段

描述

changed

布尔值

表示是否对配置集进行了更改

返回: success

示例: true

currentConfigBlock

字符串

用户指定接口的当前配置块

返回:当 action = show 时

示例: "interface Ethernet4\n!\n"

fullConfig

字符串

更新后配置集的完整配置

返回:当 action = add 或 remove 时

示例: "!\ninterface Ethernet3\n!\ninterface Ethernet4\n!\n"

newConfigBlock

字符串

用户指定接口的新配置块

返回:当 action = add 或 remove 时

示例: "interface Ethernet3\n    description example\n    no switchport\n!\n"

oldConfigBlock

字符串

在进行任何更改之前,用户指定接口的当前配置块

返回:当 action = add 或 remove 时

示例: "interface Ethernet3\n!\n"

portConfigurable

布尔值

表示用户指定的端口在 Ansible 可以访问的配置集中是否有条目

返回: success

示例: true

switchConfigurable

布尔值

表示用户指定的交换机是否应用了 CVP 允许编辑的配置集

返回: success

示例: true

switchInfo

字典

来自 CVP 的描述正在配置的交换机的信息

返回: success

示例: {"architecture": "i386", "bootupTimeStamp": 1491264298.21, "complianceCode": "0000", "complianceIndication": "NONE", "deviceInfo": "Registered", "deviceStatus": "Registered", "fqdn": "veos1", "hardwareRevision": "", "internalBuildId": "12-12", "internalVersion": "4.17.1F-11111.4171F", "ipAddress": "192.168.1.20", "isDANZEnabled": "no", "isMLAGEnabled": "no", "key": "00:50:56:5d:e5:e0", "lastSyncUp": 1496432895799, "memFree": 472976, "memTotal": 1893460, "modelName": "vEOS", "parentContainerId": "container_13_5776759195930", "serialNumber": "", "systemMacAddress": "00:50:56:5d:e5:e0", "taskIdList": [], "tempAction": null, "type": "netelement", "unAuthorized": false, "version": "4.17.1F", "ztpMode": "false"}

taskCompleted

布尔值

表示创建并执行的任务是否已成功完成

返回:当 action = add 或 remove,auto_run = true,并且配置发生更改时

示例: true

taskCreated

布尔值

表示由于配置集更改而创建的任务

返回:当 action = add 或 remove,auto_run = true 或 false,并且配置发生更改时

示例: true

taskExecuted

布尔值

表示自动化是否执行了生成的 task

返回:当 action = add 或 remove,auto_run = true,并且配置发生更改时

示例: true

taskId

字符串

CVP 因配置集更改而创建的任务 ID

返回:当 action = add 或 remove,auto_run = true 或 false,并且配置发生更改时

示例: "500"

updateConfigletResponse

字符串

触发配置集更新时 CVP 返回的响应

返回:当 action = add 或 remove 且配置发生更改时

示例: "Configlet veos1-server successfully updated and task initiated."

状态

  • 此模块将在 6.0.0 版本中删除。[已弃用]

  • 更多信息请参见已弃用

作者

  • EOS+ CS (@mharista)