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.5.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
}
delegate_to: localhost
- name: Query schema
cisco.mso.mso_rest:
host: mso
username: admin
password: SomeSecretPassword
path: /mso/api/v1/schemas
method: get
delegate_to: localhost
- 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
delegate_to: localhost
- 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') }}"
delegate_to: localhost