Spec-Zone.ru › Ansible

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, где каждый элемент является целым числом.

Когда use_rest установлено в auto, это может привести к переключению на ZAPI в зависимости от версии и возможностей платформы.

Игнорируется в ZAPI.

hal_linking

логическое

если true, в ответе возвращаются ссылки в формате HAL.

Варианты:

  • false ← (по умолчанию)
  • true

hostname

строка / обязательно

Имя хоста или IP-адрес экземпляра ONTAP.

http_port

целое число

Переопределить порт по умолчанию (80 или 443) на этот порт

https

логическое

Включить и отключить https.

Игнорируется при использовании REST, так как поддерживается только https.

Игнорируется при использовании аутентификации по сертификату SSL, так как она требует SSL.

Варианты:

  • false ← (по умолчанию)
  • true

key_filepath

строка

добавлено в netapp.ontap 20.6.0

Путь к файлу закрытого ключа SSL клиента.

method

строка

Используемый REST-метод.

По умолчанию: "GET"

ontapi

целое число

Используемая версия ontap api

password

псевдонимы: pass

строка

Пароль для указанного пользователя.

query

словарь

Список словарей для параметров запроса

use_rest

строка

Использовать REST или ZAPI.

always – всегда использует REST API, если модуль его поддерживает. Выводится предупреждение, если модуль не поддерживает REST. Выводится ошибка, если параметр модуля не поддерживается в REST.

never – всегда использует ZAPI, если модуль его поддерживает. Может выводиться ошибка, если параметр REST не поддерживается в ZAPI.

auto – попытается использовать REST API, если модуль его поддерживает и параметры модуля поддерживаются. В противном случае переходит к ZAPI.

По умолчанию: "auto"

username

псевдонимы: user

строка

Это может быть учётная запись уровня кластера или SVM, в зависимости от того, требуется ли API уровня кластера или SVM.

Для получения дополнительной информации, пожалуйста, ознакомьтесь с документацией https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/.

Поддерживаются два метода аутентификации

  1. базовая аутентификация, используя имя пользователя и пароль,
  2. аутентификация по SSL-сертификату, используя файл SSL-сертификата клиента и, необязательно, файл закрытого ключа.

Для использования сертификата, сертификат должен быть установлен в кластере ONTAP, и должна быть включена аутентификация по сертификату.

validate_certs

boolean

Если установлено значение no, сертификаты SSL не будут проверены.

Это значение должно быть установлено только для сайтов, находящихся под личным контролем, использующих самозаверенные сертификаты.

Варианты:

  • false
  • true ← (по умолчанию)

vserver_name

string

При указании этого параметра принудительно используется туннелирование vserver. Имя пользователя идентифицирует учетную запись администратора кластера.

vserver_uuid

string

При указании этого параметра принудительно используется туннелирование vserver. Имя пользователя идентифицирует учетную запись администратора кластера.

wait_for_completion

boolean

добавлен в netapp.ontap 21.14.0

Если значение True, POST/PATCH/DELETE могут обрабатываться синхронно и асинхронно.

Если ответ указывает на то, что задача находится в процессе выполнения, статус задачи периодически проверяется до ее завершения.

Если значение False, вызов возвращает немедленно.

Варианты:

  • false ← (по умолчанию)
  • true

Примечания

Примечание

  • Модули с префиксом 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.

Возвращается: Всегда

Авторы

  • Команда NetApp Ansible (@carchi8py)

Ссылки на сборку

  • Система отслеживания ошибок
  • Главная страница
  • Репозиторий (источники)

© 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

Spec-Zone.ru

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