netapp.ontap.na_ontap_restit – NetApp ONTAP Запуск любого REST API на ONTAP
Примечание
Этот плагин входит в состав коллекции netapp.ontap (версия 21.1.1).
Для его установки используйте: ansible-galaxy collection install netapp.ontap.
Для использования в playbook укажите: netapp.ontap.na_ontap_restit.
Новое в версии 20.4.0: коллекции netapp.ontap
Обзор
- Вызов REST API на ONTAP.
- REST API кластера выполняются с использованием учетной записи администратора кластера.
- REST API сервера виртуальных машин могут выполняться с использованием учетной записи vsadmin или с помощью туннелирования сервера виртуальных машин (администратор кластера с параметрами vserver_).
- В случае успеха возвращается словарь JSON в формате
response. - В случае ошибки REST API устанавливаются
status_code,error_code,error_message, которые помогут в диагностике проблемы, - и вызов отмечается как ошибка (‘failed’).
- Другие ошибки (например, проблемы с подключением) сообщаются как ошибка Ansible.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- Ansible 2.9
- Python3 netapp-lib (2018.11.13) или более поздней версии. Установите с помощью ‘pip install netapp-lib’
- netapp-lib 2020.3.12 настоятельно рекомендуется, так как он обеспечивает более подробную информацию об ошибках при подключении.
- Физическая или виртуальная кластеризованная система Data ONTAP. Модули поддерживают Data ONTAP 9.1 и более поздние версии.
- Поддержка REST требует ONTAP 9.6 или более поздней версии.
- Для включения http в кластере необходимо выполнить следующие команды ‘set -privilege advanced;’ ‘system services web modify -http-enabled true;’
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api строка / обязательный | Вызываемый REST API (например, cluster/software, svms/svm). | |
| body словарь | Словарь для параметра info псевдонимы: info | |
| cert_filepath строка добавлен в 20.6.0 коллекции netapp.ontap | Путь к файлу SSL-сертификата клиента (.pem). не поддерживается с python 2.6. | |
| feature_flags словарь добавлен в 20.5.0 коллекции netapp.ontap | Включение или отключение новой функции. Это может быть использовано для включения экспериментальной функции или отключения новой функции, которая нарушает обратную совместимость. Поддерживаемые ключи и значения могут быть изменены без предварительного уведомления. Неизвестные ключи игнорируются. | |
| hal_linking логическое значение |
| Если true, в ответе возвращаются HAL-кодированные ссылки. |
| hostname строка / обязательный | Имя хоста или IP-адрес экземпляра ONTAP. | |
| http_port целое число | Переопределите порт по умолчанию (80 или 443) этим портом | |
| https логическое значение |
| Включить и отключить https. Игнорируется при использовании REST, так как поддерживается только https. Игнорируется при использовании аутентификации по сертификату SSL, так как она требует SSL. |
| key_filepath строка добавлен в 20.6.0 коллекции netapp.ontap | Путь к файлу закрытого ключа SSL-клиента. | |
| method строка | Значение по умолчанию: "GET" | Используемый REST-метод. |
| ontapi целое число | Используемая версия API ontap | |
| password строка | Пароль для указанного пользователя. псевдонимы: pass | |
| query словарь | Список словарей для параметров запроса | |
| use_rest строка | Значение по умолчанию: "auto" | REST API, если поддерживается целевой системой для всех ресурсов и атрибутов, необходимых модулю. В противном случае возвращается к ZAPI. всегда -- всегда использовать REST API никогда -- всегда использовать ZAPI авто -- попытаться использовать REST API |
| username строка | Это может быть учетная запись уровня кластера или SVM, в зависимости от того, требуется ли API уровня кластера или SVM. Для получения дополнительной информации, пожалуйста, ознакомьтесь с документацией https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/. Поддерживаются два метода аутентификации 1. аутентификация по паролю, используя имя пользователя и пароль, 2. аутентификация по сертификату SSL, используя файл SSL-сертификата клиента, и, необязательно, файл закрытого ключа. Для использования сертификата сертификат должен быть установлен в кластере ONTAP, и должна быть включена аутентификация по сертификату. псевдонимы: user | |
| validate_certs логическое значение |
| Если установлено no, сертификаты SSL не будут проверены.Это должно быть установлено только False для сайтов, контролируемых лично, использующих самоподписанные сертификаты. |
| vserver_name строка | Если указано, принудительно включается туннелирование сервера виртуальных машин. имя пользователя идентифицирует учетную запись администратора кластера. | |
| vserver_uuid строка | Если указано, принудительно включается туннелирование сервера виртуальных машин. имя пользователя идентифицирует учетную запись администратора кластера. |
Примечания
Примечание
- Модули с префиксом na_ontap разработаны для поддержки платформы хранения ONTAP.
Примеры
-
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 }
# 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 строка | При ошибке | Если REST API был выполнен, но завершился ошибкой, код ошибки, установленный REST API. Отсутствует, если успешно, или если REST API вызов не может быть выполнен. |
| error_message строка | При ошибке | Если REST API был выполнен, но завершился ошибкой, сообщение об ошибке, установленное REST API. Отсутствует, если успешно, или если REST API вызов не может быть выполнен. |
| response словарь | При успехе | При успехе, возвращаемый REST API json словарь. Если REST API был выполнен, но завершился ошибкой, пустой словарь. Отсутствует, если REST API вызов не может быть выполнен. |
| status_code строка | Всегда | Код HTTP-статуса. |
Авторы
- Команда NetApp Ansible (@carchi8py) <ng-ansibleteam@netapp.com>
© 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/netapp/ontap/na_ontap_restit_module.html