cisco.mso.mso_rest 模块 – 直接访问 Cisco MSO REST API

注意

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

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

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

要在 playbook 中使用它,请指定:cisco.mso.mso_rest

概要

  • 允许通过直接访问 Cisco MSO REST API 来管理 Cisco MSO 结构。

  • 此模块不是幂等的,也不报告更改。

要求

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

  • 多站点编排器 v2.1 或更高版本

参数

参数

注释

content

别名:payload

任意

直接设置 API 请求的有效负载。

这对于模板化简单的请求可能很方便。

对于任何复杂的操作,请使用 template 查找插件(参见示例)。

host

别名:hostname

字符串

ACI 多站点编排器主机的 IP 地址或主机名。

如果任务中未指定该值,则将使用环境变量 MSO_HOST 的值。

login_domain

字符串

用于身份验证的登录域名称。

默认值为 Local。

如果任务中未指定该值,则将使用环境变量 MSO_LOGIN_DOMAIN 的值。

使用 HTTPAPI 连接插件时,如果未指定此属性,则将使用清单变量 ansible_httpapi_login_domain

method

别名:action

字符串

请求的 HTTP 方法。

使用 delete 通常用于删除对象。

使用 get 通常用于查询对象。

使用 post 通常用于修改对象。

使用 put 通常用于修改现有对象。

使用 patch 通常也用于修改现有对象。

选项

  • "delete"

  • "get" ← (默认)

  • "post"

  • "put"

  • "patch"

output_level

字符串

影响此 MSO 模块的输出。

normal 表示标准输出,包括 current 字典

info 添加信息输出,包括 previousproposedsent 字典

debug 添加调试输出,包括 filter_stringmethodresponsestatusurl 信息

如果任务中未指定该值,则将使用环境变量 MSO_OUTPUT_LEVEL 的值。

选项

  • "debug"

  • "info"

  • "normal" ← (默认)

password

字符串

用于身份验证的密码。

如果任务中未指定该值,则将使用环境变量 MSO_PASSWORDANSIBLE_NET_PASSWORD 的值。

path

别名:uri

字符串 / 必需

用于执行 API 调用的 URI。

port

整数

用于 REST 连接的端口号。

默认值取决于参数 `use_ssl`。

如果任务中未指定该值,则将使用环境变量 MSO_PORT 的值。

timeout

整数

以秒为单位的套接字级别超时。

默认值为 30 秒。

如果任务中未指定该值,则将使用环境变量 MSO_TIMEOUT 的值。

use_proxy

布尔值

如果为 false,则即使在目标主机上的环境变量中定义了代理,也不会使用代理。

如果任务中未指定该值,则将使用环境变量 MSO_USE_PROXY 的值。

默认为 true

选项

  • false

  • true

use_ssl

布尔值

如果为 false,则将使用 HTTP 连接而不是默认的 HTTPS 连接。

如果任务中未指定该值,则将使用环境变量 MSO_USE_SSL 的值。

使用 HTTPAPI 连接插件时,如果未指定此属性,则将使用清单变量 ansible_httpapi_use_ssl

使用 HTTPAPI 连接插件 (mso 或 nd) 时默认为 false,使用旧版连接方法 (仅限于 mso) 时默认为 true

选项

  • false

  • true

username

字符串

用于身份验证的用户名。

如果任务中未指定值,则将改用环境变量MSO_USERNAMEANSIBLE_NET_USERNAME的值。

validate_certs

布尔值

如果为false,则不会验证SSL证书。

仅当在使用自签名证书的个人控制站点上使用时,才应将其设置为false

如果任务中未指定值,则将改用环境变量MSO_VALIDATE_CERTS的值。

默认为 true

选项

  • false

  • true

注释

注意

  • 大多数有效负载已知是非幂等的,因此在构建有效负载时要小心。

  • 此模块编写用于支持 Multi Site Orchestrator v2.1 或更高版本。某些或所有功能在早期版本中可能无法正常工作。

另请参阅

另请参阅

cisco.mso.mso_tenant

管理租户。

示例

- name: Add schema (JSON)
  cisco.mso.mso_rest:
    host: mso
    username: admin
    password: SomeSecretPassword
    path: /mso/api/v1/schemas
    method: post
    content:
      {
        "displayName": "{{ mso_schema | default('ansible_test') }}",
        "templates": [{
          "name": "Template_1",
          "tenantId": "{{ add_tenant.jsondata.id }}",
          "displayName": "Template_1",
          "templateSubType": [],
          "templateType": "stretched-template",
          "anps": [],
          "contracts": [],
          "vrfs": [],
          "bds": [],
          "filters": [],
          "externalEpgs": [],
          "serviceGraphs": [],
          "intersiteL3outs": []
        }],
        "sites": [],
        "_updateVersion": 0
      }

- name: Query schema
  cisco.mso.mso_rest:
    host: mso
    username: admin
    password: SomeSecretPassword
    path: /mso/api/v1/schemas
    method: get
  register: query_result

- name: Patch schema (YAML)
  cisco.mso.mso_rest:
    host: mso
    username: admin
    password: SomeSecretPassword
    path: "/mso/api/v1/schemas/{{ add_schema.jsondata.id }}"
    method: patch
    content:
      - op: add
        path: /templates/Template_1/anps/-
        value:
          name: AP2
          displayName: AP2
          epgs: []
        _updateVersion: 0

- name: Add a tenant from a templated payload file from templates
  cisco.mso.mso_rest:
    host: mso
    username: admin
    password: SomeSecretPassword
    method: post
    path: /api/v1/tenants
    content: "{{ lookup('template', 'mso/tenant.json.j2') }}"

作者

  • Anvitha Jain (@anvitha-jain)