ansible.netcommon.restconf_config 模块 – 用于处理支持 RESTCONF 的设备上的配置数据的创建、更新、读取和删除操作。

注意

此模块是 ansible.netcommon 集合 (版本 7.1.0) 的一部分。

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

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

要在剧本中使用它,请指定:ansible.netcommon.restconf_config

ansible.netcommon 1.0.0 中的新增功能

概要

  • RESTCONF 是一种标准机制,允许 Web 应用程序配置和管理数据。RESTCONF 是一个 IETF 标准,在 RFC 8040 中有文档记录。

  • 此模块允许用户配置支持 RESTCONF 的设备上的数据。

参数

参数

注释

content

字符串

配置数据,格式如 format 选项中指定。除非 methoddelete,否则必填。

format

字符串

作为 content 值提供的配置的格式。接受的值为 xmljson,并且远程 RESTCONF 服务器应支持给定的配置格式。

选项

  • "json" ← (默认)

  • "xml"

method

字符串

用于管理设备上配置更改的 RESTCONF 方法。值 post 用于创建数据资源或调用操作资源,put 用于替换目标数据资源,patch 用于修改目标资源,delete 用于删除目标资源。

选项

  • "post" ← (默认)

  • "put"

  • "patch"

  • "delete"

path

字符串 / 必填

用于执行 API 调用的 URI。

备注

注意

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

  • 此模块支持 ansible_connection 值为 ansible.netcommon.httpapiansible_network_os 值为 ansible.netcommon.restconf 的情况。

  • 此模块已针对 Cisco IOSXE 16.12.02 版本进行了测试。

示例

- name: create l3vpn services
  ansible.netcommon.restconf_config:
    path: /config/ietf-l3vpn-svc:l3vpn-svc/vpn-services
    content: |
      {
        "vpn-service":[
                        {
                          "vpn-id": "red_vpn2",
                          "customer-name": "blue",
                          "vpn-service-topology": "ietf-l3vpn-svc:any-to-any"
                        },
                        {
                          "vpn-id": "blue_vpn1",
                          "customer-name": "red",
                          "vpn-service-topology": "ietf-l3vpn-svc:any-to-any"
                        }
                      ]
       }

返回值

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

描述

candidate

字典

发送到设备的配置。

返回:当方法不是 delete 时

示例:{"vpn-service": [{"customer-name": "red", "vpn-id": "blue_vpn1", "vpn-service-topology": "ietf-l3vpn-svc:any-to-any"}]}

running

字典

设备上当前正在运行的配置。

返回:当方法不是 delete 时

示例:{"vpn-service": [{"customer-name": "blue", "vpn-id": "red_vpn2", "vpn-service-topology": "ietf-l3vpn-svc:any-to-any"}, {"customer-name": "red", "vpn-id": "blue_vpn1", "vpn-service-topology": "ietf-l3vpn-svc:any-to-any"}]}

作者

  • Ganesh Nalawade (@ganeshrn)