community.network.slxos_config 模块 – 管理 Extreme Networks SLX-OS 配置段

注意

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

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

要安装它,请使用: ansible-galaxy collection install community.network

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

注意

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

已弃用

在以下版本中移除:

版本 6.0.0

原因:

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

替代方案:

未知。

概要

  • Extreme SLX-OS 配置使用简单的块缩进文件语法将配置分割成多个部分。此模块提供了一种以确定性方式处理 SLX-OS 配置段的实现。

别名:network.slxos.slxos_config

参数

参数

注释

after

字符串

如果需要进行更改,则将附加到命令堆栈末尾的已排序命令集。与before一样,这允许剧本设计者附加一组要在命令集之后执行的命令。

backup

布尔值

此参数将导致模块在进行任何更改之前创建当前running-config的完整备份。如果未给出backup_options值,则备份文件将写入剧本根目录中的backup文件夹。如果目录不存在,则会创建它。

选项

  • false ← (默认)

  • true

backup_options

字典

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

dir_path

路径

此选项提供以目录名结尾的路径,备份配置文件将存储在其中。如果目录不存在,它将首先被创建,文件名要么是filename的值,要么是filename选项说明中所述的默认文件名。如果没有给出路径值,则会在当前工作目录中创建一个backup目录,并将备份配置复制到backup目录中的filename

filename

字符串

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

before

字符串

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

defaults

布尔值

此参数指定获取远程设备运行配置时是否收集所有默认值。启用后,模块将通过发出命令show running-config all来获取当前配置。

选项

  • false ← (默认)

  • true

diff_against

字符串

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

当此选项配置为startup时,模块将返回运行配置与启动配置的差异。

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

当此选项配置为running时,模块将返回相对于对设备配置所做的任何更改的运行配置的之前和之后的差异。

选项

  • “running”

  • “启动”

  • “预期”

diff_ignore_lines

字符串

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

intended_config

字符串

`intended_config` 提供节点应符合的主配置,并用于检查最终运行配置。此参数不会修改远程设备上的任何设置,仅用于检查当前设备配置的合规性。指定此参数时,任务还应修改`diff_against` 值并将其设置为 *intended*。

lines

别名:commands

字符串

应该在该部分配置的命令的有序集合。这些命令必须与设备运行配置中找到的命令完全相同。请注意配置命令语法,因为某些命令会由设备配置解析器自动修改。

match

字符串

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

选项

  • "line" ← (默认)

  • “strict”

  • “exact”

  • “none”

multiline_delimiter

字符串

将多行配置元素推送到 SLX-OS 设备时使用此参数。它指定用作分隔符的字符。这仅适用于配置操作。

默认值: "@"

parents

字符串

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

replace

字符串

指示模块如何在设备上执行配置。如果将 replace 参数设置为 *line*,则修改后的行将在配置模式下推送到设备。如果将 replace 参数设置为 *block*,则如果任何一行不正确,则整个命令块将在配置模式下推送到设备。

选项

  • "line" ← (默认)

  • “block”

running_config

别名:config

字符串

默认情况下,模块将连接到远程设备并检索当前运行配置,将其用作与源内容进行比较的基准。有时,不需要让任务为 playbook 中的每个任务获取当前运行配置。`running_config` 参数允许实现者传入用作比较基准配置的配置。

save_when

字符串

对设备运行配置进行更改时,默认情况下不会将更改复制到非易失性存储器。使用此参数将在之前更改这一点。如果参数设置为 *always*,则运行配置将始终复制到启动配置,并且 *modified* 标志将始终设置为 True。如果参数设置为 *modified*,则只有在自上次保存到启动配置以来运行配置已更改时,运行配置才会复制到启动配置。如果参数设置为 *never*,则运行配置将永远不会复制到启动配置。如果参数设置为 *changed*,则只有在任务进行了更改时,运行配置才会复制到启动配置。

选项

  • “always”

  • "never" ← (默认)

  • “modified”

  • “changed”

src

字符串

指定包含要加载的配置或配置模板的文件的源路径。源文件的路径可以是 Ansible 控制主机上的完整路径,也可以是 playbook 或角色根目录的相对路径。此参数与 `lines`、`parents` 互斥。

备注

注意

  • 针对 SLX-OS 17s.1.02 进行了测试

示例

- name: Configure top level configuration
  community.network.slxos_config:
    lines: hostname {{ inventory_hostname }}

- name: Configure interface settings
  community.network.slxos_config:
    lines:
      - description test interface
      - ip address 172.31.1.1/24
    parents: interface Ethernet 0/1

- name: Configure multiple interfaces
  community.network.slxos_config:
    lines:
      - lacp timeout long
    parents: "{{ item }}"
  with_items:
    - interface Ethernet 0/1
    - interface Ethernet 0/2

- name: Load new acl into device
  community.network.slxos_config:
    lines:
      - seq 10 permit ip host 1.1.1.1 any log
      - seq 20 permit ip host 2.2.2.2 any log
      - seq 30 permit ip host 3.3.3.3 any log
      - seq 40 permit ip host 4.4.4.4 any log
      - seq 50 permit ip host 5.5.5.5 any log
    parents: ip access-list extended test
    before: no ip access-list extended test
    match: exact

- name: Check the running-config against master config
  community.network.slxos_config:
    diff_against: intended
    intended_config: "{{ lookup('file', 'master.cfg') }}"

- name: Check the startup-config against the running-config
  community.network.slxos_config:
    diff_against: startup
    diff_ignore_lines:
      - ntp clock .*

- name: Save running to startup when modified
  community.network.slxos_config:
    save_when: modified

- name: Configurable backup path
  community.network.slxos_config:
    lines: hostname {{ inventory_hostname }}
    backup: true
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

返回值

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

描述

backup_path

字符串

备份文件的完整路径

返回:当 backup 为 yes 时

示例: "/playbooks/ansible/backup/slxos_config.2018-02-12@18:26:34"

commands

列表 / 元素=字符串

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

返回:始终

示例: ["switch-attributes hostname foo", "router ospf", "area 0"]

updates

列表 / 元素=字符串

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

返回:始终

示例: ["switch-attributes hostname foo", "router ospf", "area 0"]

状态

  • 此模块将在 6.0.0 版中删除。*已弃用*

  • 更多信息请参见已弃用

作者

  • Lindsay Hill (@LindsayHill)