Spec-Zone.ru › Ansible 2.11

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

Spec-Zone.ru

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