Модуль cisco.aci.aci_rest – Прямой доступ к REST API Cisco APIC
Примечание
Этот модуль входит в состав коллекции cisco.aci (версия 2.10.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install cisco.aci. Для использования этого модуля требуются дополнительные зависимости, см. Требования для подробной информации.
Для использования в playbook укажите: cisco.aci.aci_rest.
Описание
- Обеспечивает управление Cisco ACI fabric через прямой доступ к REST API Cisco APIC.
- Благодаря идемпотентности APIC, этот модуль идемпотентен и сообщает об изменениях.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- lxml (при использовании XML payload)
- xmljson >= 0.1.8 (при использовании XML payload)
- python 2.7+ (при использовании xmljson)
Параметры
Параметр | Комментарии |
|---|---|
annotation string | Пользовательская строка для аннотации объекта. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Если значение не указано в задаче и переменной окружения По умолчанию: |
certificate_name aliases: cert_name string | Имя сертификата X.509, прикрепленного к пользователю APIC AAA, используемому для аутентификации на основе подписи. Если указано имя файла Если для Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
content any | При использовании вместо Это может быть удобно для шаблонизации простых запросов. Для чего-либо сложного используйте подключаемый модуль поиска |
host aliases: hostname string | IP-адрес или имя хоста APIC, распознаваемое узлом управления Ansible. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
method aliases: action string | HTTP-метод запроса. Использование Использование Использование Варианты:
|
output_level string | Влияет на вывод этого модуля ACI.
Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Варианты:
|
output_path string | Путь к файлу, который будет использоваться для выгрузки объектов конфигурации ACI JSON, сгенерированных модулем. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
password string | Пароль, используемый для аутентификации. Этот параметр является взаимоисключающим с Если значение не указано в задаче, вместо него будут использованы значения переменных окружения |
path aliases: uri string / required | URI, используемый для выполнения API-вызовов. Должен заканчиваться на |
port integer | Номер порта, используемый для REST-соединения. Значение по умолчанию зависит от параметра Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
private_key aliases: cert_key string | Либо файл закрытого ключа в формате PEM, либо содержимое закрытого ключа, используемое для аутентификации на основе подписи. Это значение также влияет на используемое значение Этот параметр является взаимоисключающим с Если значение не указано в задаче, вместо него будут использованы значения переменных окружения |
rsp_subtree_preserve boolean | Сохраняет ответ для указанного пути. Варианты:
|
src aliases: config_file path | Имя абсолютного пути к файлу, содержащему тело HTTP-запроса, отправляемого в структуру ACI. Если вам требуется шаблонная полезная нагрузка, используйте параметр |
suppress_previous aliases: no_previous, ignore_previous boolean | Если Если значение не указано в задаче, будет использовано значение переменной окружения Значение по умолчанию — ПРЕДУПРЕЖДЕНИЕ - Это приводит к тому, что предыдущее возвращаемое значение становится пустым. Предыдущее состояние объекта не будет проверяться, и обновление POST будет содержать все свойства. Варианты:
|
suppress_verification aliases: no_verification, no_verify, suppress_verify, ignore_verify, ignore_verification boolean | Если Если значение не указано в задаче, будет использовано значение переменной окружения Значение по умолчанию — ПРЕДУПРЕЖДЕНИЕ - Это приводит к тому, что текущее возвращаемое значение устанавливается в предложенное значение. Текущий объект, включая значения по умолчанию, не будет проверяться в одной задаче. Варианты:
|
timeout integer | Таймаут уровня сокета в секундах. Если значение не указано в задаче, будет использовано значение переменной окружения Значение по умолчанию — 30. |
use_proxy boolean | Если Если значение не указано в задаче, будет использовано значение переменной окружения Значение по умолчанию — true. Варианты:
|
use_ssl boolean | Если Если значение не указано в задаче, будет использовано значение переменной окружения Значение по умолчанию — true для локального подключения. Варианты:
|
username aliases: user string | Имя пользователя для аутентификации. Если значение не указано в задаче, будет использовано значение переменных окружения Значение по умолчанию — admin. |
validate_certs boolean | Если Это следует устанавливать в Если значение не указано в задаче, будет использовано значение переменной окружения Значение по умолчанию — true. Варианты:
|
Примечания
Примечание
- Известно, что некоторые полезные нагрузки не являются идемпотентными, поэтому будьте осторожны при построении полезных нагрузок, например, использование
status="created"вызовет проблемы с идемпотентностью, используйтеstatus="modified"вместо этого. Дополнительная информация в :ref:`документации ACI <aci_guide_known_issues>`. - Известно, что некоторые полезные нагрузки (и используемые пути) сообщают об отсутствии изменений, когда изменения произошли. Это известная проблема APIC, о которой было сообщено поставщику. Существует обходное решение для этой проблемы. Дополнительная информация в :ref:`документации ACI <aci_guide_known_issues>`.
- XML-полезные нагрузки требуют библиотек python
lxmlиxmljson. Для JSON-полезных нагрузок ничего специального не требуется. - Если у вас нет атрибутов, возможно, потребуется добавить ключ «attributes» со значением пустого словаря «{}», так как APIC ожидает, что запись будет предшествовать любым дочерним элементам.
- Наборы аннотаций, заданные непосредственно в c(src) или
content, имеют приоритет над параметромannotation.
См. также
См. также
- cisco.aci.aci_tenant
-
Управление арендаторами (fv:Tenant).
- Руководство по конфигурации API REST APIC Cisco
-
Дополнительная информация об API REST APIC.
- Руководство Cisco ACI
-
Подробная информация о том, как управлять вашей инфраструктурой ACI с помощью Ansible.
- Разработка модулей Cisco ACI
-
Подробное руководство по написанию собственных модулей Cisco ACI для участия в сообществе.
Примеры
- name: Add a tenant using certificate authentication
cisco.aci.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/
cisco.aci.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
cisco.aci.aci_rest:
host: apic
username: admin
private_key: pki/admin.key
validate_certs: false
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
cisco.aci.aci_rest:
host: apic
username: admin
private_key: pki/admin.key
validate_certs: false
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
cisco.aci.aci_rest:
host: apic
username: admin
private_key: pki/{{ aci_username }}.key
validate_certs: false
path: /api/mo/uni.xml
method: post
content: '<fvTenant name="Sales" descr="Sales departement"/>'
delegate_to: localhost
- name: Get tenants using password authentication
cisco.aci.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
cisco.aci.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
cisco.aci.aci_rest:
host: apic
username: admin
private_key: pki/admin.key
validate_certs: false
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
cisco.aci.aci_rest:
host: apic
username: admin
private_key: pki/admin.key
validate_certs: false
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: true
Значения возврата
Общие значения возврата задокументированы здесь, следующие являются полями, уникальными для этого модуля:
Ключ | Описание |
|---|---|
error_code целое число | Код возврата REST ACI, полезный для устранения неполадок при ошибках Возвращается: всегда Пример: |
error_text строка | Дескриптивный текст REST ACI, полезный для устранения неполадок при ошибках Возвращается: всегда Пример: |
imdata строка | Преобразованный вывод, возвращённый APIC REST (зарегистрируйте для последующей обработки) Возвращается: всегда Пример: |
payload строка | Отправляемый (шаблонный) payload в APIC REST API (xml или json) Возвращается: всегда Пример: |
raw строка | Необработанный вывод, возвращённый APIC REST API (xml или json) Возвращается: при ошибке парсинга Пример: |
response строка | Строка HTTP ответа Возвращается: всегда Пример: |
status целое число | Код состояния HTTP Возвращается: всегда Пример: |
totalCount строка | Количество элементов в массиве imdata Возвращается: всегда Пример: |
url строка | URL, используемый для вызова APIC REST Возвращается: при успехе Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/cisco/aci/aci_rest_module.html