cisco.mso.mso_rest module – Direct access to the Cisco MSO REST API
Note
This module is part of the cisco.mso collection (version 2.11.0).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install cisco.mso.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: cisco.mso.mso_rest.
Synopsis
- Enables the management of the Cisco MSO fabric through direct access to the Cisco MSO REST API. 
- This module is not idempotent and does not report changes. 
Requirements
The below requirements are needed on the host that executes this module.
- Multi Site Orchestrator v2.1 or newer 
Parameters
| Parameter | Comments | 
|---|---|
| Sets the payload of the API request directly. This may be convenient to template simple requests. For anything complex use the  | |
| IP Address or hostname of the ACI Multi Site Orchestrator host. If the value is not specified in the task, the value of environment variable  | |
| The login domain name to use for authentication. The default value is Local. If the value is not specified in the task, the value of environment variable  When using a HTTPAPI connection plugin the inventory variable  | |
| The HTTP method of the request. Using  Using  Using  Using  Using  Choices: 
 | |
| Influence the output of this MSO module. 
 
 
 If the value is not specified in the task, the value of environment variable  Choices: 
 | |
| The password to use for authentication. If the value is not specified in the task, the value of environment variables  | |
| URI being used to execute API calls. | |
| Port number to be used for the REST connection. The default value depends on parameter `use_ssl`. If the value is not specified in the task, the value of environment variable  | |
| The socket level timeout in seconds. The default value is 30 seconds. If the value is not specified in the task, the value of environment variable  | |
| If  If the value is not specified in the task, the value of environment variable  The default is  Choices: 
 | |
| If  If the value is not specified in the task, the value of environment variable  When using a HTTPAPI connection plugin the inventory variable  The default is  Choices: 
 | |
| The username to use for authentication. If the value is not specified in the task, the value of environment variables  | |
| If  This should only set to  If the value is not specified in the task, the value of environment variable  The default is  Choices: 
 | 
Notes
Note
- Most payloads are known not to be idempotent, so be careful when constructing payloads. 
- This module was written to support Multi Site Orchestrator v2.1 or newer. Some or all functionality may not work on earlier versions. 
See Also
See also
- cisco.mso.mso_tenant
- Manage tenants. 
Examples
- 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') }}"
