cisco.nxos.nxos_config 模块 – 管理 Cisco NXOS 配置节

注意

此模块是 cisco.nxos 集合(版本 9.2.1)的一部分。

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

要安装它,请使用:ansible-galaxy collection install cisco.nxos

要在 playbook 中使用它,请指定:cisco.nxos.nxos_config

cisco.nxos 1.0.0 中的新增功能

概要

  • Cisco NXOS 配置使用简单的块缩进文件语法将配置分段为不同的部分。此模块提供了一种以确定性方式处理 NXOS 配置节的实现。此模块可与 CLI 或 NXAPI 传输一起使用。

参数

参数

注释

after

列表 / 元素=字符串

如果需要进行更改,则追加到命令堆栈末尾的有序命令集。与 before 类似,这允许 playbook 设计者追加一组在命令集之后执行的命令。

backup

布尔值

此参数将使模块在进行任何更改之前创建远程设备当前 running-config 的完整备份。如果未给出 backup_options 值,则备份文件将写入 playbook 根目录或角色根目录(如果 playbook 是 Ansible 角色的一部分)中的 backup 文件夹。如果该目录不存在,则会创建它。

选择

  • false ←(默认)

  • true

backup_options

字典

这是一个包含与备份文件路径相关的可配置选项的字典对象。仅当 backup 设置为 True 时,才会读取此选项的值,如果 backup 设置为 false,此选项将被静默忽略。

dir_path

路径

此选项提供以目录名称结尾的路径,备份配置文件将存储在该路径中。如果该目录不存在,则将创建该目录,并且文件名是 filename 的值或 filename 选项描述中描述的默认文件名。如果未提供路径值,则将在当前工作目录中创建一个 backup 目录,并且备份配置将复制到 backup 目录内的 filename 中。

filename

字符串

用于存储备份配置的文件名。如果未提供文件名,则将基于主机名、当前时间和日期生成,格式由 <hostname>_config.<current-date>@<current-time> 定义。

before

列表 / 元素=字符串

如果需要进行更改,则推送到命令堆栈的有序命令集。这使 playbook 设计者有机会在推送任何更改之前执行配置命令,而不会影响命令集与系统匹配的方式。

defaults

布尔值

defaults 参数将影响如何从设备收集 running-config。当该值设置为 true 时,用于收集 running-config 的命令将附加 all 关键字。当该值设置为 false 时,将不使用 all 关键字发出命令。

选择

  • false ←(默认)

  • true

diff_against

字符串

当使用 ansible-playbook --diff 命令行参数时,该模块可以针对不同的来源生成差异。

当此选项配置为 startup 时,该模块将返回 running-config 与 startup-config 的差异。

当此选项配置为 intended 时,该模块将返回 running-config 与 intended_config 参数中提供的配置的差异。

当此选项配置为 running 时,该模块将返回 running-config 在对设备配置进行任何更改之前和之后的差异。

选择

  • "startup"

  • "intended"

  • "running"

diff_ignore_lines

列表 / 元素=字符串

使用此参数指定在差异期间应忽略的一行或多行。这用于配置中由系统自动更新的行。此参数采用正则表达式或精确的行匹配列表。

intended_config

字符串

intended_config 提供节点应符合的主配置,并用于检查最终 running-config 的符合性。此参数不会修改远程设备上的任何设置,严格用于检查当前设备的配置是否符合。指定此参数时,任务还应修改 diff_against 值并将其设置为 intended。此值的配置行应类似于它在设备的 running-config 中出现的方式,包括缩进以确保正确的差异。

lines

别名:commands

列表 / 元素=字符串

应在节中配置的有序命令集。这些命令必须与设备 running-config 中找到的命令完全相同,以确保幂等性和正确的差异。请务必注意配置命令语法,因为某些命令会由设备配置解析器自动修改。

match

字符串

指示模块如何将命令集与当前设备配置进行匹配。如果 match 设置为 line,则逐行匹配命令。如果 match 设置为 strict,则命令行的匹配要考虑位置。如果 match 设置为 exact,则命令行必须完全匹配。最后,如果 match 设置为 none,则模块不会尝试将源配置与远程设备上的运行配置进行比较。

选择

  • "line" ← (默认)

  • "strict"

  • "exact"

  • "none"

parents

列表 / 元素=字符串

有序的父级集合,用于唯一标识命令应检查的节或层次结构。如果省略 parents 参数,则命令将针对顶级或全局命令集进行检查。

replace

字符串

指示模块如何在设备上执行配置。如果 replace 参数设置为 line,则修改后的行将以配置模式推送到设备。如果 replace 参数设置为 block,则如果任何行不正确,则整个命令块将以配置模式推送到设备。replace config 仅适用于支持 `config replace` 的 NX-OS 版本。

选择

  • "line" ← (默认)

  • "block"

  • "config"

replace_src

字符串

replace_src 参数提供要加载到远程系统的配置文件的路径。此参数用于将整个配置替换为平面文件。此参数与值为 configreplace 参数一起使用。它与 linessrc 参数互斥。此参数仅适用于支持 `config replace` 的 NX-OS 版本。使用 nxos_file_copy 模块将平面文件复制到远程设备,然后将路径与此参数一起使用。文件中的配置行应类似于在设备的运行配置中出现时的样子,包括缩进,以确保幂等性和正确的差异。

running_config

别名: config

字符串

默认情况下,该模块将连接到远程设备并检索当前运行配置,以用作与源内容进行比较的基础。有时,不希望任务在剧本中的每个任务都获取当前的运行配置。running_config 参数允许实施者传入配置,以用作比较的基础配置。此选项的配置行应类似于在设备的运行配置中出现时的样子,包括缩进,以确保幂等性和正确的差异。

save_when

字符串

当对设备运行配置进行更改时,默认情况下不会将更改复制到非易失性存储。使用此参数可以更改此行为。如果参数设置为 always,则运行配置将始终复制到启动配置,并且 modified 标志将始终设置为 True。如果参数设置为 modified,则只有在上次保存到启动配置后运行配置发生更改时,才会将其复制到启动配置。如果参数设置为 never,则永远不会将运行配置复制到启动配置。如果参数设置为 changed,则只有在任务进行了更改后,才会将运行配置复制到启动配置。changed 是在 Ansible 2.6 中添加的。

选择

  • "always"

  • "never" ← (默认)

  • "modified"

  • "changed"

src

路径

src 参数提供要加载到远程系统的配置文件的路径。如果该值以 / 开头,则该路径可以是配置文件的完整系统路径,或者相对于已实施角色或剧本的根目录。此参数与 linesparents 参数互斥。源文件中的配置行应类似于在设备的运行配置中出现时的样子,包括缩进,以确保幂等性和正确的差异。

注意

注意

示例

- 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_path

字符串

备份文件的完整路径

返回值: 当 backup 为 yes 时

示例: "/playbooks/ansible/backup/nxos_config.2016-07-16@22:28:34"

commands

列表 / 元素=字符串

将推送到远程设备的命令集

返回值: 始终

示例: ["hostname foo", "vlan 1", "name default"]

date

字符串

从备份文件名中提取的日期

返回值: 当 backup 为 yes 时

示例: "2016-07-16"

filename

字符串

备份文件的名称

返回值: 当 backup 为 yes 且未在备份选项中指定文件名时

示例: "nxos_config.2016-07-16@22:28:34"

shortname

字符串

备份文件的完整路径,不包括时间戳

返回值: 当 backup 为 yes 且未在备份选项中指定文件名时

示例: "/playbooks/ansible/backup/nxos_config"

time

字符串

从备份文件名中提取的时间

返回值: 当 backup 为 yes 时

示例: "22:28:34"

updates

列表 / 元素=字符串

将推送到远程设备的命令集

返回值: 始终

示例: ["hostname foo", "vlan 1", "name default"]

作者

  • Peter Sprygada (@privateip)