junipernetworks.junos.junos_config 模块 – 管理运行 Juniper JUNOS 的设备上的配置

注意

此模块是 junipernetworks.junos 集合 (版本 9.1.0) 的一部分。

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

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

要在剧本中使用它,请指定:junipernetworks.junos.junos_config

junipernetworks.junos 1.0.0 中的新增功能

概要

  • 此模块提供了一个实现,用于处理 Juniper JUNOS 设备上运行的活动配置。它提供了一组参数,用于加载配置、执行回滚操作和清除设备上的活动配置。

要求

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

  • ncclient (>=v0.5.2)

参数

参数

注释

backup

布尔值

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

选项

  • false ← (默认)

  • true

backup_options

字典

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

backup_format

字符串

此参数指定备份文件将保存的配置格式。如果未指定此参数,模块将使用“set”格式。

选项

  • "xml"

  • "set" ← (默认)

  • "text"

  • "json"

dir_path

路径

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

filename

字符串

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

check_commit

布尔值

此参数将检查语法的正确性;不应用更改。

请注意,此参数可用于确认通过 commit confirmed 操作完成的已验证配置

选项

  • false ← (默认)

  • true

comment

字符串

comment 参数指定提交配置时要使用的文本字符串。如果 confirm 参数设置为 False,则此参数将被静默忽略。

默认值: "configured by junos_config"

confirm

整数

confirm 参数将配置以分钟为单位的超时值,用于在自动回滚之前确认提交。如果此参数的值设置为 0,则会立即确认提交,这也是默认行为。

默认值: 0

confirm_commit

布尔值

此参数将在远程设备上执行 commit 操作。它可用于确认之前的提交。

选项

  • false ← (默认)

  • true

lines

别名:commands

列表 / 元素=字符串

此参数接受要推送到远程设备的 setdelete 配置行的列表。每一行都必须以 setdelete 开头。此参数与 src 参数互斥。

replace

布尔值

replace 参数将指示远程设备用从此模块加载的源配置的相应层次结构中指定的层次结构替换当前配置层次结构。

请注意,此参数应被视为已弃用。要实现等效功能,请将 update 参数设置为 replace。此参数将在未来的版本中删除。replaceupdate 参数互斥。

选项

  • false

  • true

rollback

整数

rollback 参数指示模块将当前配置回滚到参数中指定的标识符。如果远程设备上不存在指定的回滚标识符,则模块将失败。要回滚到最新的提交,请将 rollback 参数设置为 0。

src

路径

src 参数提供要加载到远程系统的配置文件的路径。如果值以 / 开头,则路径可以是配置文件的完整系统路径,也可以相对于已实现的角色或剧本的根目录。此参数与 lines 参数互斥。

src_format

字符串

src_format 参数指定在 src 中找到的配置的格式。如果未提供 src_format 参数,则模块将尝试确定在 src 中指定的配置文件的格式。

选项

  • "xml"

  • "set"

  • "text"

  • "json"

update

字符串

此参数将决定如何加载配置数据,尤其是在候选配置和已加载配置包含冲突语句时。以下是可接受的值。merge 将已加载配置中的数据与候选配置中的数据合并。如果已加载配置中的语句与候选配置中的语句冲突,则已加载的语句将替换候选语句。override 将丢弃整个候选配置,并将其替换为已加载配置。replace 将已加载配置中的每个层次结构级别替换为相应的级别。update 类似于 override 选项。新配置将完全替换现有配置。区别在于之后提交配置时。此选项将在新的候选配置和现有的已提交配置之间执行“差异”比较。然后,它只通知负责配置更改部分的系统进程,并且只将实际的配置更改标记为“已更改”。

选项

  • "merge" ← (默认)

  • "override"

  • "replace"

  • "update"

zeroize

布尔值

zeroize 参数用于将远程设备配置完全清理回初始默认值。此参数将有效地删除远程设备上的所有当前配置语句。

选项

  • false ← (默认)

  • true

注释

注意

  • 此模块要求在被管理的远程设备上启用 netconf 系统服务。

  • 缩写命令不是幂等的,请参阅 网络常见问题解答

  • 从 Junos OS 版本 16.1 开始支持加载 JSON 格式的配置 json

  • 目前 override 更新与 set 表示法不兼容。

  • 针对 vSRX JUNOS 版本 15.1X49-D15.4、vqfx-10000 JUNOS 版本 15.1X53-D60.4 进行了测试。

  • 推荐的连接是 netconf。请参阅 Junos OS 平台选项

  • 此模块也适用于旧版 playbook 的 local 连接。

  • 有关使用 CLI 和 netconf 的信息,请参阅:ref:`Junos OS 平台选项指南 <junos_platform_options>`

  • 有关使用 Ansible 管理网络设备的更多信息,请参阅:ref:`Ansible 网络指南 <network_guide>`

  • 有关使用 Ansible 管理 Juniper 网络设备的更多信息,请参阅 https://ansible.org.cn/ansible-juniper

示例

- name: load configure file into device
  junipernetworks.junos.junos_config:
    src: srx.cfg
    comment: update config

- name: load configure lines into device
  junipernetworks.junos.junos_config:
    lines:
      - set interfaces ge-0/0/1 unit 0 description "Test interface"
      - set vlans vlan01 description "Test vlan"
    comment: update config

- name: Set routed VLAN interface (RVI) IPv4 address
  junipernetworks.junos.junos_config:
    lines:
      - set vlans vlan01 vlan-id 1
      - set interfaces irb unit 10 family inet address 10.0.0.1/24
      - set vlans vlan01 l3-interface irb.10

- name: Check correctness of commit configuration
  junipernetworks.junos.junos_config:
    check_commit: true

- name: rollback the configuration to id 10
  junipernetworks.junos.junos_config:
    rollback: 10

- name: zero out the current configuration
  junipernetworks.junos.junos_config:
    zeroize: true

- name: Set VLAN access and trunking
  junipernetworks.junos.junos_config:
    lines:
      - set vlans vlan02 vlan-id 6
      - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode access vlan
        members vlan02
      - set interfaces ge-0/0/6.0 family ethernet-switching interface-mode trunk vlan
        members vlan02

- name: confirm a previous commit
  junipernetworks.junos.junos_config:
    confirm_commit: true

- name: for idempotency, use full-form commands
  junipernetworks.junos.junos_config:
    lines:
      - set interfaces ge-0/0/1 unit 0 description "Test interface"

- name: configurable backup path
  junipernetworks.junos.junos_config:
    src: srx.cfg
    backup: true
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

- name: Set description with timer to confirm commit
  junipernetworks.junos.junos_config:
    lines:
      - set interfaces fxp0 description "wait for a commit confirmation for 3 minutes; otherwise, it will be rolled back."
    confirm: 3

- name: Perform confirm commit
  junipernetworks.junos.junos_config:
    confirm_commit: true

返回值

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

描述

backup_path

字符串

备份文件的完整路径

返回:当 backup 为 true 时

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

date

字符串

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

返回:当 backup 为 true 时

示例: "2016-07-16"

filename

字符串

备份文件的名称

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

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

shortname

字符串

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

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

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

time

字符串

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

返回:当 backup 为 true 时

示例: "22:28:34"

作者

  • Peter Sprygada (@privateip)