You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decort-ansible/wiki/5.2.6/модуль-decort_disk.md

19 KiB

03.03 Модуль decort_disk

Обзор модуля decort_disk

Модуль decort_disk предназначен для управления дисковыми ресурсами в платформе DECORT:

  • создание / удаление диска;
  • изменение размера диска.
  • переименование диска.
  • ограничение ввода / вывода диска.
  • восстановление удаленного диска из корзины.

Обратите внимание:

  • загрузочный диск для виртуального сервера создаётся и подключается автоматически в процессе создания этого сервера. - Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками);
  • подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным серверам выполняется с помощью модулей управления compute-ресурсами (например, подробнее см. модуль decort_kvmvm, параметр data_disks).

Параметры модуля decort_disk

Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: ansible-doc -t module decort_disk

Параметр Тип, допустимые значения Описание
account_id (int) Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр account_name). Если одновременно заданы и account_id, и account_name, то account_name игнорируется.
account_name (string) Имя учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр account_id). Если одновременно заданы и account_id, и account_name, то account_name игнорируется.
annotation (string) Текстовое описание диска. Данный аргумент является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.
app_id (string) Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_APP_ID.
app_secret (string) Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET.
authenticator Значения:
legacy
oauth2
jwt <- default
Режим аутентификации при подключении к контроллеру облачной платформы DECORT.
controller_url (string) URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным.
description (string) Описание диска. Используется при создании диска, по умолчанию установлено: "Disk created with Ansible Decort_disk module."
id (int) Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры name, account_name и account_id игнорируются.
iops (int) Ограничение ввода/вывода диска. Используется при создании диска.
force_detach (bool)
True
False <- default
Задаёт поведение платформы при попытке удалить диск, подключённый к экземпляру compute.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите force_detach: True.
jwt (string) JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме authenticator: jwt Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения DECORT_JWT.
limitIO (dict) Параметр, позволяющий ограничить скорость ввода/вывода диска в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах.
name (string) Имя диска. Для идентификации диска требуется либо его имя name и информация об учётной записи (account_id или account_name), которой принадлежит диск, либо его id.
oauth2_url (string) URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_OAUTH2_URL.
permanently (bool) Параметр, использующийся при удалении диска, при значении True - диск удалится навсегда, а при False - попадёт в корзину.
place_with (int) Идентификатор образа ОС, из которого следует взять параметр sep_id, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ ОС. Данный параметр является опциональным и используется только на стадии создания диска. Если задан place_with, то sep_id игнорируется.
pool (string) Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, значение по умолчанию - пустая строка (в этом случае платформа использует пул, который сконфигурирован на целевой системе хранения как пул по умолчанию).
reason (string) Причина, по которой было выполнено какое-либо действие, в данном модуле используется только при удалении диска.
sep_id (int) Идентификатор провайдера системы хранения данных (Storage End-point Provider). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является place_with, позволяющий разместить диск на той же системе хранения, что и указанный загрузочный образ, на базе которого создаётся экземпляр compute.
size (int) Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующих дисков, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.
state Значения:
present <- default
absent
Целевое состояние диска.
type (string) Тип создаваемого диска. Возможные значения: B-Boot, D-Data, T-Temp. По умолчанию установлено значение D.
verify_ssl (bool)
True <- default
False
Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах.
workflow_callback (string) URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.
Данный параметр является опциональным.
Функциональность callbacks в текущей версии модуля не реализована.
workflow_context (string) Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к workflow_callback URL.
Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов workflow_callback данные со своим внутренним состоянием и отслеживать инициированные им задачи.
Параметр является опциональным и имеет значение только при условии, что также задан workflow_callback.
Функциональность callbacks в текущей версии модуля не реализована.

Возвращаемые значения модуля decort_disk

Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами:

Ключ Тип данных Описание
account_id int Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит диск.
attached_to int Идентификатор экземпляра Compute (напр., виртуального сервера), к которому в настоящий момент подключён диск. Если диск не подключён, то attached_to=0
gid int Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.
id int Уникальный целочисленный идентификатор данного диска.
iotune dict Текущие ограничение ввода / вывода диска.
name string Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.
pool string Имя пула на системе хранения данных, в котором размещаются ресурсы диска.
sep_id int Идентификатор системы хранения (Storage Endpoint Provider), на которой размещаются ресурсы данного диска.
size int Размер диска в ГБ.
state string Текущий статус диска. Корректные состояния: CREATED, ASSIGNED, DELETED, DESTROYED, PURGED.

Пример использования модуля decort_disk

В данном примере создаётся диск размером 50ГБ (size: 50), с ограничением ввода / вывода в 2000 iops, на ресурсах системы хранения, доступной через Storage Endpoint provider под номером 1 (sep_id: 1) в пуле "data01".

- name: manage data disk
  decort_disk:
    authenticator: oauth2
    app_id: "{{ my_app_id }}"
    app_secret: "{{ my_app_secret }}"
    oauth2_url: "https://sso.digitalenergy.online"
    controller_url: "https://cloud.digitalenergy.online"
    name: "DataDisk01"
    size: 50
    account_name: "MyAccount"
    sep_id: 1
    iops: 2000
    description: "Disk example"
    pool: data01
    state: present
    register: my_data_disk01
    delegate_to: localhost

В данном примере ограничивается уже существующий диск с именем "DataDisk01", ограничивается как чтение/запись в iops, так и в байтах, также задаётся их максимальное чтение / запись(read/write_*_sec_max).

- name: manage data disk
  decort_disk:
    authenticator: oauth2
    app_id: "{{ my_app_id }}"
    app_secret: "{{ my_app_secret }}"
    oauth2_url: "https://sso.digitalenergy.online"
    controller_url: "https://cloud.digitalenergy.online"
    name: "DataDisk01"
    account_name: "MyAccount"
    limitIO:
      read_bytes_sec: 100
      read_bytes_sec_max: 100
      read_iops_sec:  100
      read_iops_sec_max: 100
      size_iops_sec: 100
      write_bytes_sec: 100
      write_bytes_sec_max: 100
      write_iops_sec: 100
      write_iops_sec_max: 100
      total_bytes_sec: 0
      total_iops_sec: 0
      total_bytes_sec_max: 0
      total_iops_sec_max: 0
    state: present
    register: my_data_disk01
    delegate_to: localhost

В данном примере выполняется восстановление удаленного диска с id 111 из корзины.

- name: manage data disk
  decort_disk:
    authenticator: oauth2
    app_id: "{{ my_app_id }}"
    app_secret: "{{ my_app_secret }}"
    oauth2_url: "https://sso.digitalenergy.online"
    controller_url: "https://cloud.digitalenergy.online"
    id: 111
    state: present
    register: my_data_disk01
    delegate_to: localhost

В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk".

- name: manage data disk
  decort_disk:
    authenticator: oauth2
    app_id: "{{ my_app_id }}"
    app_secret: "{{ my_app_secret }}"
    oauth2_url: "https://sso.digitalenergy.online"
    controller_url: "https://cloud.digitalenergy.online"
    id: 111
    name: "NewExampleDisk"
    state: present
    register: my_data_disk01
    delegate_to: localhost

Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальному серверу, следует воспользоваться показанной ниже конструкцией:

- name: manage virtual server
  decort_kvmvm:
    << для краткости фрагмент опущен >>
    data_disks:
      - "{{ my_data_disk01.facts.id }}"
    << для краткости фрагмент опущен >>