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 <- defaultabsent |
Целевое состояние диска. |
type | (string) | Тип создаваемого диска. Возможные значения: B-Boot, D-Data, T-Temp. По умолчанию установлено значение D. |
verify_ssl | (bool)True <- defaultFalse |
Позволяет отключить проверку 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 }}"
<< для краткости фрагмент опущен >>