cisco.mso.mso_rest – Direct access to the Cisco MSO REST API
Note
This plugin is part of the cisco.mso collection (version 1.2.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
.
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 |
|
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. If the value is not specified in the task, the value of environment variable Default: 30 |
|
If If the value is not specified in the task, the value of environment variable Choices:
|
|
If If the value is not specified in the task, the value of environment variable Choices:
|
|
The username to use for authentication. If the value is not specified in the task, the value of environment variables Default: “admin” |
|
If This should only set to If the value is not specified in the task, the value of environment variable Choices:
|
Notes
Note
Most payloads are known not to be idempotent, so be careful when constructing payloads.
Please read the mso_guide for more detailed information on how to manage your MSO infrastructure using Ansible.
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
The official documentation on the cisco.mso.mso_tenant module.
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
Authors
Anvitha Jain (@anvitha-jain)