cisco.nxos.nxos_config 模块 – 管理 Cisco NXOS 配置段
注意
此模块是 cisco.nxos 集合 (版本 9.2.1) 的一部分。
如果您正在使用 ansible
包,则您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装它,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install cisco.nxos
。
要在剧本中使用它,请指定: cisco.nxos.nxos_config
。
cisco.nxos 1.0.0 中的新增功能
概要
Cisco NXOS 配置使用简单的块缩进文件语法将配置分割成各个部分。此模块提供了一种以确定性方式处理 NXOS 配置段的实现。此模块可与 CLI 或 NXAPI 传输一起使用。
参数
参数 |
注释 |
---|---|
如果需要进行更改,则将附加到命令堆栈末尾的命令的有序集合。与before一样,这允许剧本设计者附加一组命令在命令集之后执行。 |
|
此参数将导致模块在进行任何更改之前创建远程设备当前 选项
|
|
这是一个包含与备份文件路径相关的可配置选项的字典对象。仅当 |
|
此选项提供以目录名结尾的路径,其中将存储备份配置文件。如果目录不存在,它将被创建,文件名是 |
|
用于存储备份配置的文件名。如果未给出文件名,它将基于主机名、当前时间和日期按<hostname>_config.<current-date>@<current-time>格式生成。 |
|
如果需要进行更改,则要推送到命令堆栈的有序命令集。这允许剧本设计者有机会在推送任何更改之前执行配置命令,而不会影响如何将命令集与系统匹配。 |
|
defaults参数将影响如何从设备收集running-config。当值设置为true时,用于收集running-config的命令将附加all关键字。当值设置为false时,命令将不带all关键字发出。 选项
|
|
使用 当此选项配置为startup时,模块将返回running-config与startup-config的差异。 当此选项配置为intended时,模块将返回running-config与 当此选项配置为running时,模块将返回关于对设备配置所做的任何更改,running-config的之前和之后的差异。 选项
|
|
使用此参数指定在差异期间应忽略的一行或多行。这用于系统自动更新的配置中的行。此参数采用正则表达式或精确行匹配的列表。 |
|
` |
|
应该在该部分配置的命令的有序集合。为了确保幂等性和正确的 diff,命令必须与设备运行配置中找到的命令完全相同。请务必注意配置命令语法,因为某些命令会由设备配置解析器自动修改。 |
|
指示模块如何将命令集与当前设备配置进行匹配。如果将 match 设置为 *line*,则逐行匹配命令。如果将 match 设置为 *strict*,则命令行将根据位置进行匹配。如果将 match 设置为 *exact*,则命令行必须完全匹配。最后,如果将 match 设置为 *none*,则模块不会尝试将源配置与远程设备上的运行配置进行比较。 选项
|
|
唯一标识应检查命令的节或层次结构的有序父级集。如果省略 parents 参数,则会针对顶级或全局命令集检查命令。 |
|
指示模块如何在设备上执行配置。如果将 replace 参数设置为 *line*,则修改后的行将以配置模式推送到设备。如果将 replace 参数设置为 *block*,则如果任何一行不正确,则整个命令块将以配置模式推送到设备。replace *config* 仅适用于支持 `config replace` 的 NX-OS 版本。 选项
|
|
replace_src 参数提供要加载到远程系统的配置文件的路径。此参数用于使用平面文件替换整个配置。它与值为 config 的参数 replace 一起使用。它与 lines 和 src 参数互斥。此参数仅适用于支持 `config replace` 的 NX-OS 版本。使用 nxos_file_copy 模块将平面文件复制到远程设备,然后使用此参数中的路径。文件中的配置行应与其出现在设备运行配置中的方式类似,包括缩进,以确保幂等性和正确的 diff。 |
|
默认情况下,模块将连接到远程设备并检索当前运行配置,将其用作与源内容进行比较的基准。有时,不需要让任务为 playbook 中的每个任务获取当前运行配置。running_config 参数允许实现者传入用作比较基准配置的配置。此选项的配置行应与其出现在设备运行配置中的方式类似,包括缩进,以确保幂等性和正确的 diff。 |
|
对设备运行配置进行更改时,默认情况下不会将更改复制到非易失性存储器。使用此参数将更改之前的行为。如果将参数设置为 *always*,则运行配置将始终复制到启动配置,并且 *modified* 标志将始终设置为 True。如果将参数设置为 *modified*,则只有在自上次保存到启动配置以来运行配置已更改时,才会将其复制到启动配置。如果将参数设置为 *never*,则运行配置将永远不会复制到启动配置。如果将参数设置为 *changed*,则只有在任务进行了更改时,才会将运行配置复制到启动配置。*changed* 在 Ansible 2.6 中添加。 选项
|
|
src 参数提供要加载到远程系统的配置文件的路径。如果值以 / 开头,则路径可以是配置文件的完整系统路径,也可以相对于已实现角色或 playbook 的根目录。此参数与 lines 和 parents 参数互斥。源文件中的配置行应与其出现在设备运行配置中的方式类似,包括缩进,以确保幂等性和正确的 diff。 |
注释
注意
不支持 Cisco MDS
为了确保幂等性和正确的 diff,相关模块选项中的配置行应与其在设备运行配置中出现的方式类似,包括缩进。
有关使用 CLI 和 NX-API 的信息,请参见:ref:`NXOS 平台选项指南 <nxos_platform_options>`
有关使用 Ansible 管理网络设备的更多信息,请参见:ref:`Ansible 网络指南 <network_guide>`
有关使用 Ansible 管理 Cisco 设备的更多信息,请参见 `Cisco 集成页面 <https://ansible.org.cn/integrations/networks/cisco>`_。
示例
- name: configure top level configuration and save it
cisco.nxos.nxos_config:
lines: hostname {{ inventory_hostname }}
save_when: modified
- name: diff the running-config against a provided config
cisco.nxos.nxos_config:
diff_against: intended
intended_config: "{{ lookup('file', 'master.cfg') }}"
- cisco.nxos.nxos_config:
lines:
- 10 permit ip 192.0.2.1/32 any log
- 20 permit ip 192.0.2.2/32 any log
- 30 permit ip 192.0.2.3/32 any log
- 40 permit ip 192.0.2.4/32 any log
- 50 permit ip 192.0.2.5/32 any log
parents: ip access-list test
before: no ip access-list test
match: exact
- cisco.nxos.nxos_config:
lines:
- 10 permit ip 192.0.2.1/32 any log
- 20 permit ip 192.0.2.2/32 any log
- 30 permit ip 192.0.2.3/32 any log
- 40 permit ip 192.0.2.4/32 any log
parents: ip access-list test
before: no ip access-list test
replace: block
- name: replace config with flat file
cisco.nxos.nxos_config:
replace_src: config.txt
replace: config
- name: for idempotency, use full-form commands
cisco.nxos.nxos_config:
lines:
# - shut
- shutdown
# parents: int eth1/1
parents: interface Ethernet1/1
- name: configurable backup path
cisco.nxos.nxos_config:
backup: true
backup_options:
filename: backup.cfg
dir_path: /home/user
返回值
常用的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
备份文件的完整路径 返回:当 backup 为 yes 时 示例: |
|
将推送到远程设备的命令集 返回:始终 示例: |
|
从备份文件名中提取的日期 返回:当 backup 为 yes 时 示例: |
|
备份文件的名称 返回:当 backup 为 yes 且备份选项中未指定文件名时 示例: |
|
备份文件的完整路径,不包括时间戳 返回:当 backup 为 yes 且备份选项中未指定文件名时 示例: |
|
从备份文件名中提取的时间 返回:当 backup 为 yes 时 示例: |
|
将推送到远程设备的命令集 返回:始终 示例: |