Spec-Zone.ru › Ansible 2.8

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, задаёт содержимое запроса 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, будет использовано HTTP соединение вместо стандартного HTTPS соединения.
username
строка
По умолчанию:
"admin"
Имя пользователя для аутентификации.

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

Примечания

Примечание

  • Некоторые payload известны тем, что не являются идемпотентными, поэтому будьте осторожны при построении 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, полезный для отладки при ошибках

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

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

Пример:
<foo bar="boo"/>
raw
строка
ошибка разбора
Необработанный вывод, возвращаемый APIC REST API (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


Статус

  • Этот модуль не гарантирует обратной совместимости. [превью]
  • Этот модуль поддерживается партнёром Ansible. [сертифицировано]

Авторы

  • 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.8/modules/aci_rest_module.html

Spec-Zone.ru

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