cisco.mso.mso_rest – Direct access to the Cisco MSO REST API

From Get docs
Ansible/docs/2.11/collections/cisco/mso/mso rest module


cisco.mso.mso_rest – Direct access to the Cisco MSO REST API

Note

This plugin is part of the cisco.mso collection (version 1.1.0).

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 Choices/Defaults Comments

content

raw

Sets the payload of the API request directly.

This may be convenient to template simple requests.

For anything complex use the template lookup plugin (see examples).


aliases: payload

host

string / required

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 MSO_HOST will be used instead.


aliases: hostname

login_domain

string

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 MSO_LOGIN_DOMAIN will be used instead.

method

string

  • delete
  • get

  • post
  • put
  • patch

The HTTP method of the request.

Using delete is typically used for deleting objects.

Using get is typically used for querying objects.

Using post is typically used for modifying objects.

Using put is typically used for modifying existing objects.

Using patch is typically also used for modifying existing objects.


aliases: action

output_level

string

  • debug
  • info
  • normal

Influence the output of this ACI module.

normal means the standard output, incl. current dict

info adds informational output, incl. previous, proposed and sent dicts

debug adds debugging output, incl. filter_string, method, response, status and url information

If the value is not specified in the task, the value of environment variable MSO_OUTPUT_LEVEL will be used instead.

password

string / required

The password to use for authentication.

If the value is not specified in the task, the value of environment variables MSO_PASSWORD or ANSIBLE_NET_PASSWORD will be used instead.

path

string / required

URI being used to execute API calls.


aliases: uri

port

integer

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 MSO_PORT will be used instead.

timeout

integer

Default:

30

The socket level timeout in seconds.

If the value is not specified in the task, the value of environment variable MSO_TIMEOUT will be used instead.

use_proxy

boolean

  • no
  • yes

If no, it will not use a proxy, even if one is defined in an environment variable on the target hosts.

If the value is not specified in the task, the value of environment variable MSO_USE_PROXY will be used instead.

use_ssl

boolean

  • no
  • yes

If no, an HTTP connection will be used instead of the default HTTPS connection.

If the value is not specified in the task, the value of environment variable MSO_USE_SSL will be used instead.

username

string

Default:

"admin"

The username to use for authentication.

If the value is not specified in the task, the value of environment variables MSO_USERNAME or ANSIBLE_NET_USERNAME will be used instead.

validate_certs

boolean

  • no
  • yes

If no, SSL certificates will not be validated.

This should only set to no when used on personally controlled sites using self-signed certificates.

If the value is not specified in the task, the value of environment variable MSO_VALIDATE_CERTS will be used instead.



Notes

Note

  • Most payloads are known not to be idempotent, so be careful when constructing payloads.
  • Please read the Cisco ACI Guide for more detailed information on how to manage your ACI infrastructure using Ansible.
  • This module was written to support ACI 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)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/cisco/mso/mso_rest_module.html