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

注意

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

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

要安装它,请使用:ansible-galaxy collection install junipernetworks.junos。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

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

junipernetworks.junos 1.0.0 中的新增功能

概要

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

要求

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

  • ncclient (>=v0.5.2)

参数

参数

注释

backup

布尔值

此参数将导致模块在进行任何更改之前创建远程设备上当前 running-config 的完整备份。如果未给出 backup_options 值,则备份文件将写入 playbook 根目录或角色根目录(如果 playbook 是 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

布尔值

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

选项

  • false ←(默认)

  • true

lines

别名:commands

列表 / 元素=字符串

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

replace

布尔值

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

请注意,此参数应被视为已弃用。要达到相同的效果,请将 update 参数设置为 replace。此参数将在未来的版本中移除。replaceupdate 参数是互斥的。

选项

  • false

  • true

rollback

整数

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

src

路径

src 参数提供要加载到远程系统中的配置文件的路径。如果值以 / 开头,则该路径可以是配置文件的完整系统路径,否则相对于已实现的 role 或 playbook 的根目录。此参数与 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)