Spec-Zone.ru › Ansible 2.9

aci_rest – Прямой доступ к REST API Cisco APIC

Новое в версии 2.4.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Значения возврата
  • Статус

Обзор

  • Обеспечивает управление Cisco ACI Fabric через прямой доступ к REST API Cisco APIC.
  • Благодаря идемпотентности APIC, этот модуль является идемпотентным и сообщает об изменениях.

Требования

Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.

  • lxml (при использовании XML payload)
  • xmljson >= 0.1.8 (при использовании XML payload)
  • python 2.7+ (при использовании xmljson)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
certificate_name
строка
Имя сертификата X.509, прикрепленного к пользователю APIC AAA, используемому для аутентификации на основе подписи.
Если было предоставлено имя файла private_key, значение по умолчанию — private_key без расширения.
Если для private_key был предоставлен контент в формате PEM, значение по умолчанию — username.

Псевдонимы: cert_name
content
сырые данные
В случае использования вместо src, напрямую задает payload запроса к API.
Это может быть удобно для шаблонизации простых запросов.
Для сложных запросов используйте плагин поиска template (см. примеры) или модуль template с параметром src.
host
строка / обязательно
IP-адрес или имя хоста APIC, разрешаемое управляющим хостом Ansible.

Псевдонимы: hostname
method
строка
    Варианты:
  • delete
  • get ←
  • post
HTTP-метод запроса.
Использование delete обычно используется для удаления объектов.
Использование get обычно используется для запроса объектов.
Использование post обычно используется для изменения объектов.

Псевдонимы: action
output_level
строка
    Варианты:
  • debug
  • info
  • normal ←
Влияет на вывод этого ACI модуля.
normal означает стандартный вывод, включая current словарь
info добавляет информационный вывод, включая previous, proposed и sent словари
debug добавляет отладочный вывод, включая filter_string, method, response, status и url информацию
password
строка / обязательно
Пароль для аутентификации.
Этот параметр исключает private_key. Если также предоставлен private_key, будет использован он.
path
строка / обязательно
URI, используемый для выполнения API-вызовов.
Должен заканчиваться на .xml или .json.

Псевдонимы: uri
port
целое число
Номер порта для подключения REST.
Значение по умолчанию зависит от параметра use_ssl.
private_key
строка / обязательно
Файл закрытого ключа в формате PEM или содержимое закрытого ключа, используемое для аутентификации на основе подписи.
Это значение также влияет на значение по умолчанию certificate_name.
Этот параметр исключает password. Если также предоставлен password, он будет проигнорирован.

Псевдонимы: cert_key
src
путь
Имя абсолютного пути к файлу, содержащему тело HTTP-запроса, отправляемого в ACI Fabric.
Если требуется шаблонизируемый payload, используйте параметр content вместе с плагином поиска template, или используйте модуль template.

Псевдонимы: config_file
timeout
целое число
По умолчанию:
30
Таймаут на уровне сокета в секундах.
use_proxy
булево
    Варианты:
  • no
  • yes ←
Если no, прокси не будет использоваться, даже если он определён в переменной среды целевых хостов.
use_ssl
булево
    Варианты:
  • no
  • yes ←
Если no, вместо стандартного HTTPS соединения будет использовано HTTP-соединение.
username
строка
По умолчанию:
"admin"
Имя пользователя для аутентификации.

Псевдонимы: user
validate_certs
булево
    Варианты:
  • no
  • yes ←
Если no, SSL-сертификаты не будут проверены.
Это значение следует устанавливать в no только при использовании на сайтах с самоподписанными сертификатами, контролируемых пользователем.

Примечания

Примечание

  • Некоторые payload известны тем, что не являются идемпотентными, поэтому будьте осторожны при их построении, например, использование status="created" вызовет проблемы с идемпотентностью, используйте status="modified" вместо этого. Более подробная информация в документации ACI.
  • Некоторые payload (и используемые пути) известны тем, что сообщают об отсутствии изменений, когда изменения произошли. Это известная проблема APIC и была сообщена поставщику. Существует обходное решение для этой проблемы. Более подробная информация в документации ACI.
  • XML payload требуют библиотек python lxml и xmljson. Для JSON payload ничего дополнительного не требуется.

См. также

См. также

aci_tenant – Управление арендаторами (fv:Tenant)
Официальная документация модуля aci_tenant.
Руководство по конфигурации REST API Cisco APIC
Дополнительная информация о REST API APIC.
Руководство Cisco ACI
Подробная информация о том, как управлять инфраструктурой ACI с помощью Ansible.
Разработка модулей Cisco ACI
Подробное руководство по написанию собственных модулей Cisco ACI для внесения вклада.

Примеры

- name: Add a tenant using certificate authentication
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    method: post
    path: /api/mo/uni.xml
    src: /home/cisco/ansible/aci/configs/aci_config.xml
  delegate_to: localhost

- name: Add a tenant from a templated payload file from templates/
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    method: post
    path: /api/mo/uni.xml
    content: "{{ lookup('template', 'aci/tenant.xml.j2') }}"
  delegate_to: localhost

- name: Add a tenant using inline YAML
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    validate_certs: no
    path: /api/mo/uni.json
    method: post
    content:
      fvTenant:
        attributes:
          name: Sales
          descr: Sales department
  delegate_to: localhost

- name: Add a tenant using a JSON string
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    validate_certs: no
    path: /api/mo/uni.json
    method: post
    content:
      {
        "fvTenant": {
          "attributes": {
            "name": "Sales",
            "descr": "Sales department"
          }
        }
      }
  delegate_to: localhost

- name: Add a tenant using an XML string
  aci_rest:
    host: apic
    username: admin
    private_key: pki/{{ aci_username }}.key
    validate_certs: no
    path: /api/mo/uni.xml
    method: post
    content: '<fvTenant name="Sales" descr="Sales departement"/>'
  delegate_to: localhost

- name: Get tenants using password authentication
  aci_rest:
    host: apic
    username: admin
    password: SomeSecretPassword
    method: get
    path: /api/node/class/fvTenant.json
  delegate_to: localhost
  register: query_result

- name: Configure contracts
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    method: post
    path: /api/mo/uni.xml
    src: /home/cisco/ansible/aci/configs/contract_config.xml
  delegate_to: localhost

- name: Register leaves and spines
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    validate_certs: no
    method: post
    path: /api/mo/uni/controller/nodeidentpol.xml
    content: |
      <fabricNodeIdentPol>
        <fabricNodeIdentP name="{{ item.name }}" nodeId="{{ item.nodeid }}" status="{{ item.status }}" serial="{{ item.serial }}"/>
      </fabricNodeIdentPol>
  with_items:
  - '{{ apic_leavesspines }}'
  delegate_to: localhost

- name: Wait for all controllers to become ready
  aci_rest:
    host: apic
    username: admin
    private_key: pki/admin.key
    validate_certs: no
    path: /api/node/class/topSystem.json?query-target-filter=eq(topSystem.role,"controller")
  register: apics
  until: "'totalCount' in apics and apics.totalCount|int >= groups['apic']|count"
  retries: 120
  delay: 30
  delegate_to: localhost
  run_once: yes

Значения возврата

Общие значения возврата описаны в этом разделе, ниже перечислены поля, уникальные для данного модуля:

Ключ Возвращаемое значение Описание
error_code
целое число
всегда
Код возврата REST ACI, полезный для устранения неполадок при ошибках

Пример:
122
error_text
строка
всегда
Описание ошибки REST ACI, полезное для устранения неполадок при ошибках

Пример:
неизвестный класс управляемого объекта foo
imdata
строка
всегда
Преобразованный вывод, возвращаемый API APIC REST (зарегистрируйте для последующей обработки)

Пример:
[{'error': {'attributes': {'code': '122', 'text': 'unknown managed object class foo'}}}]
payload
строка
всегда
Отправляемая (шаблонная) полезная нагрузка API REST APIC (xml или json)

Пример:
<foo bar="boo"/>
raw
строка
ошибка разбора
Необработанный вывод, возвращаемый API REST APIC (xml или json)

Пример:
<?xml version="1.0" encoding="UTF-8"?><imdata totalCount="1"><error code="122" text="unknown managed object class foo"/></imdata>
response
строка
всегда
Строка ответа HTTP

Пример:
HTTP Error 400: Bad Request
status
целое число
всегда
Код состояния HTTP

Пример:
400
totalCount
строка
всегда
Количество элементов в массиве imdata

Пример:
0
url
строка
успех
URL, используемый для вызова APIC REST

Пример:
https://1.2.3.4/api/mo/uni/tn-[Dag].json?rsp-subtree=modified


Состояние

  • Данный модуль не гарантирует обратной совместимости интерфейса. [preview]
  • Данный модуль поддерживается партнером Ansible. [certified]

Авторы

  • Dag Wieers (@dagwieers)

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/aci_rest_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API