netapp.ontap.na_ontap_restit модуль – NetApp ONTAP Выполнение любого REST API на ONTAP
Примечание
Этот модуль является частью коллекции netapp.ontap (версия 22.12.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install netapp.ontap. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.
Для использования в книге задач укажите: netapp.ontap.na_ontap_restit.
Новое в netapp.ontap 20.4.0
Описание
- Вызов REST API на ONTAP.
- REST API кластера выполняются с использованием учетной записи администратора кластера.
- REST API сервера можно запускать с использованием учетной записи vsadmin или с использованием туннелирования сервера (администратор кластера с параметрами vserver_).
- В случае успеха, в качестве
responseвозвращается словарь JSON. - В случае ошибки REST API,
status_code,error_code,error_messageустанавливаются для помощи в диагностике проблемы, - и вызов отображается как ошибка (‘failed’).
- Другие ошибки (например, проблемы с подключением) отображаются как ошибки Ansible.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- Ansible 2.9 или более поздней версии - рекомендуется 2.12 или более поздняя версия.
- Python3 - рекомендуется 3.9 или более поздняя версия.
- При использовании ZAPI, netapp-lib 2018.11.13 или более поздней версии (устанавливается с помощью ‘pip install netapp-lib’), netapp-lib 2020.3.12 настоятельно рекомендуется, так как он обеспечивает лучшую отчетность об ошибках подключения
- физическая или виртуальная кластерная система Data ONTAP, модули поддерживают Data ONTAP 9.1 и более поздние версии, поддержка REST требуется ONTAP 9.6 или более поздней версии
Параметры
Параметр | Комментарии |
|---|---|
accept_header строка добавлено в netapp.ontap 21.24.0 | Значение для HTTP-заголовка запроса Accept. Это очень редко требуется, но необходимо для чтения файла (см. примеры). Для большинства случаев этот параметр можно опустить. Установите его в «multipart/form-data», если ожидается такой формат. По умолчанию модуль использует «application/json» или «application/hal+json», когда hal_linking имеет значение true. |
api строка / обязательно | Вызываемый REST API (например, cluster/software, svms/svm). |
body псевдонимы: info словарь | Словарь для параметра info |
cert_filepath строка добавлено в netapp.ontap 20.6.0 | Путь к файлу SSL-сертификата клиента (.pem). Не поддерживается с python 2.6. |
feature_flags словарь добавлено в netapp.ontap 20.5.0 | Включить или отключить новую функцию. Это может использоваться для включения экспериментальной функции или отключения новой функции, нарушающей обратную совместимость. Поддерживаемые ключи и значения могут быть изменены без предварительного уведомления. Неизвестные ключи игнорируются. |
files словарь добавлено в netapp.ontap 21.24.0 | Словарь параметров при использовании multipart/form-data. Это очень редко требуется, но необходимо для записи файла (см. примеры) При его наличии заголовки запроса автоматически устанавливаются в multipart/form-data. |
force_ontap_version строка добавлено в netapp.ontap 21.23.0 | Переопределить версию кластера ONTAP при использовании REST. Поведение не определено, если версия не соответствует целевому кластеру. Это предоставляется как обходной путь, когда версия кластера не может быть прочитана из-за проблем с правами доступа. См. https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues. Должно быть в формате 9.10 или 9.10.1, где каждый элемент является целым числом. Когда Игнорируется в ZAPI. |
hal_linking логическое | если true, в ответе возвращаются ссылки в формате HAL. Варианты:
|
hostname строка / обязательно | Имя хоста или IP-адрес экземпляра ONTAP. |
http_port целое число | Переопределить порт по умолчанию (80 или 443) на этот порт |
https логическое | Включить и отключить https. Игнорируется при использовании REST, так как поддерживается только https. Игнорируется при использовании аутентификации по сертификату SSL, так как она требует SSL. Варианты:
|
key_filepath строка добавлено в netapp.ontap 20.6.0 | Путь к файлу закрытого ключа SSL клиента. |
method строка | Используемый REST-метод. По умолчанию: |
ontapi целое число | Используемая версия ontap api |
password псевдонимы: pass строка | Пароль для указанного пользователя. |
query словарь | Список словарей для параметров запроса |
use_rest строка | Использовать REST или ZAPI. always – всегда использует REST API, если модуль его поддерживает. Выводится предупреждение, если модуль не поддерживает REST. Выводится ошибка, если параметр модуля не поддерживается в REST. never – всегда использует ZAPI, если модуль его поддерживает. Может выводиться ошибка, если параметр REST не поддерживается в ZAPI. auto – попытается использовать REST API, если модуль его поддерживает и параметры модуля поддерживаются. В противном случае переходит к ZAPI. По умолчанию: |
username псевдонимы: user строка | Это может быть учётная запись уровня кластера или SVM, в зависимости от того, требуется ли API уровня кластера или SVM. Для получения дополнительной информации, пожалуйста, ознакомьтесь с документацией https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/. Поддерживаются два метода аутентификации
Для использования сертификата, сертификат должен быть установлен в кластере ONTAP, и должна быть включена аутентификация по сертификату. |
validate_certs boolean | Если установлено значение Это значение должно быть установлено только для сайтов, находящихся под личным контролем, использующих самозаверенные сертификаты. Варианты:
|
vserver_name string | При указании этого параметра принудительно используется туннелирование vserver. Имя пользователя идентифицирует учетную запись администратора кластера. |
vserver_uuid string | При указании этого параметра принудительно используется туннелирование vserver. Имя пользователя идентифицирует учетную запись администратора кластера. |
wait_for_completion boolean добавлен в netapp.ontap 21.14.0 | Если значение True, POST/PATCH/DELETE могут обрабатываться синхронно и асинхронно. Если ответ указывает на то, что задача находится в процессе выполнения, статус задачи периодически проверяется до ее завершения. Если значение False, вызов возвращает немедленно. Варианты:
|
Примечания
Примечание
- Модули с префиксом na_ontap разработаны для поддержки платформы хранения ONTAP.
- https включен по умолчанию и рекомендуется. Чтобы включить http в кластере, необходимо выполнить следующие команды: ‘set -privilege advanced;’ ‘system services web modify -http-enabled true;’
Примеры
-
name: Ontap REST API
hosts: localhost
gather_facts: False
collections:
- netapp.ontap
vars:
login: &login
hostname: "{{ admin_ip }}"
username: "{{ admin_username }}"
password: "{{ admin_password }}"
https: true
validate_certs: false
svm_login: &svm_login
hostname: "{{ svm_admin_ip }}"
username: "{{ svm_admin_username }}"
password: "{{ svm_admin_password }}"
https: true
validate_certs: false
tasks:
- name: run ontap REST API command as cluster admin
na_ontap_restit:
<<: *login
api: cluster/software
register: result
- debug: var=result
- assert: { that: result.status_code==200, quiet: True }
- name: run ontap REST API command as cluster admin
na_ontap_restit:
<<: *login
api: cluster/software
query:
fields: version
register: result
- debug: var=result
- assert: { that: result.status_code==200, quiet: True }
- name: run ontap REST API command as cluster admin
na_ontap_restit:
<<: *login
api: svm/svms
register: result
- debug: var=result
- assert: { that: result.status_code==200, quiet: True }
- name: run ontap REST API command as cluster admin
na_ontap_restit:
<<: *login
api: svm/svms
query:
fields: aggregates,cifs,nfs,uuid
query_fields: name
query: trident_svm
hal_linking: true
register: result
- debug: var=result
- name: run ontap REST API command as vsadmin
na_ontap_restit:
<<: *svm_login
api: svm/svms
register: result
- debug: var=result
- assert: { that: result.status_code==200, quiet: True }
- name: run ontap REST API command as vserver tunneling
na_ontap_restit:
<<: *login
api: storage/volumes
vserver_name: ansibleSVM
register: result
- debug: var=result
- assert: { that: result.status_code==200, quiet: True }
- set_fact:
uuid: "{{ result.response.records | json_query(get_uuid) }}"
vars:
get_uuid: "[? name=='deleteme_ln1'].uuid"
- debug: var=uuid
- name: run ontap REST API command as DELETE method with vserver tunneling
na_ontap_restit:
<<: *login
api: "storage/volumes/{{ uuid[0] }}"
method: DELETE
vserver_name: ansibleSVM
query:
return_timeout: 60
register: result
when: uuid|length == 1
- debug: var=result
- assert: { that: result.skipped|default(false) or result.status_code|default(404) == 200, quiet: True }
- name: run ontap REST API command as POST method with vserver tunneling
na_ontap_restit:
<<: *login
api: storage/volumes
method: POST
vserver_name: ansibleSVM
query:
return_records: "true"
return_timeout: 60
body:
name: deleteme_ln1
aggregates:
- name: aggr1
register: result
- debug: var=result
- assert: { that: result.status_code==201, quiet: True }
- name: run ontap REST API command as DELETE method with vserver tunneling
# delete test volume if present
na_ontap_restit:
<<: *login
api: "storage/volumes/{{ result.response.records[0].uuid }}"
method: DELETE
vserver_name: ansibleSVM
query:
return_timeout: 60
register: result
- debug: var=result
- assert: { that: result.status_code==200, quiet: True }
- name: create a file
# assuming credentials are set using module_defaults
na_ontap_restit:
api: storage/volumes/f3c003cb-2974-11ed-b2f8-005056b38dae/files/laurent123.txt
method: post
files: {'data': 'some data'}
- name: read a file
# assuming credentials are set using module_defaults
na_ontap_restit:
api: storage/volumes/f3c003cb-2974-11ed-b2f8-005056b38dae/files/laurent123.txt
method: get
accept_header: "multipart/form-data"
query:
length: 100
# error cases
- name: run ontap REST API command
na_ontap_restit:
<<: *login
api: unknown/endpoint
register: result
ignore_errors: True
- debug: var=result
- assert: { that: result.status_code==404, quiet: True }
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
error_code string | Если вызов REST API был выполнен, но завершился ошибкой, код ошибки, установленный REST API. Отсутствует, если выполнено успешно или если вызов REST API не может быть выполнен. Возвращается: При ошибке |
error_message string | Если вызов REST API был выполнен, но завершился ошибкой, сообщение об ошибке, установленное REST API. Отсутствует, если выполнено успешно или если вызов REST API не может быть выполнен. Возвращается: При ошибке |
response dictionary | Если успешно, json-словарь, возвращаемый REST API. Если вызов REST API был выполнен, но завершился ошибкой, пустой словарь. Отсутствует, если вызов REST API не может быть выполнен. Возвращается: При успехе |
status_code string | Код состояния HTTP. Когда wait_for_completion имеет значение True, это значение принудительно устанавливается в 0. Возвращается: Всегда |
Ссылки на сборку
© 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/netapp/ontap/na_ontap_restit_module.html