14 KiB
Модуль decort_disk
Обзор модуля decort_disk
Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия:
- создавать
- удалять (в корзину или безвозвратно)
- восстановливать из корзины
- изменять:
- имя
- размер
- лимиты ввода/вывода
- включать/отключать общий доступ
Обратите внимание:
- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины.
- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками);
- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm).
Параметры модуля decort_disk
Ниже приведен список параметров для модуля decort_disk (за исключением общих параметров авторизации):
Параметр | Тип, допустимые значения | Описание |
---|---|---|
account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name ) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр account_name ). Если одновременно заданы и account_id , и account_name , то account_name игнорируется. |
account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр account_id ). Если одновременно заданы и account_id , и account_name , то account_name игнорируется. |
description | (string) Default: Disk by decort_disk |
Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется. |
id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры name , account_name и account_id игнорируются. |
iops | (int) Default: 2000 |
Ограничение ввода/вывода диска. Используется при создании диска. |
force_detach | (bool) Default: false |
Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине. По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите force_detach: true . |
limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. |
name | (string) | Имя диска. Для идентификации диска требуется либо его name и информация об аккаунте (account_id или account_name ), которому принадлежит диск, либо его id . |
permanently | (bool) Default: false |
Параметр, использующийся при удалении диска, при значении true - диск удалится навсегда, а при false - попадёт в корзину. |
place_with | (int) | Идентификатор образа диска, из которого следует взять параметр sep_id , чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска. Данный параметр является опциональным и используется только на стадии создания диска. Если задан place_with , то sep_id игнорируется. |
pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. |
reason | (string) Default: Managed by Ansible decort_disk |
Причина, по которой было выполнено какое-либо действие. В данном модуле используется только при удалении диска. |
sep_id | (int) | Идентификатор системы хранения данных (Storage End-point). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является place_with , позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина. |
shareable | (bool) Default: false |
Включение/отключение общего доступа к диску. |
size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется. |
state | (str) Значения: present absent Default: present |
Целевое состояние диска. |
type | (string) Значения: B D Default: D |
Тип создаваемого диска. B - Boot/загрузочный, D - Data/с данными. |
Возвращаемые значения модуля decort_disk
Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами:
Ключ | Тип данных | Описание |
---|---|---|
account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск. |
computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь. |
gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск. |
id | int | Уникальный целочисленный идентификатор данного диска. |
iotune | dict | Текущие ограничения ввода/вывода диска. |
name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен. |
pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска. |
sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска. |
size | int | Размер диска в ГБ. |
state | string | Текущий статус диска. |
Пример использования модуля decort_disk
В данном примере создаётся диск размером 50ГБ (size: 50
), с ограничением ввода/вывода в 2000 iops, на ресурсах системы хранения данных под номером 1 (sep_id: 1
) в пуле "data01".
- name: Manage 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
register: my_data_disk01
В следующих двух примерах для существующего диска с именем "DataDisk01" задаются все доступные лимиты на операции ввода/вывода.
- name: Manage 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: 10000
write_bytes_sec: 5000
read_iops_sec и write_iops_sec
read_iops_sec: 2500
write_iops_sec: 1000
read_bytes_sec_max: 11000
write_bytes_sec_max: 6000
read_iops_sec_max: 3000
write_iops_sec_max: 1500
size_iops_sec: 1000
register: my_data_disk01
- name: Manage 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:
total_bytes_sec: 15000
total_iops_sec: 3500
total_bytes_sec_max: 17000
total_iops_sec_max: 4500
size_iops_sec: 1000
register: my_data_disk01
В данном примере выполняется восстановление удаленного диска с id 111 из корзины.
- name: Manage 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
size: 10
register: my_data_disk01
В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk".
- name: Manage 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"
size: 10
register: my_data_disk01
Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальной машине, следует воспользоваться показанной ниже конструкцией:
- name: Manage compute
decort_kvmvm:
<< для краткости фрагмент опущен >>
data_disks:
- "{{ my_data_disk01.facts.id }}"
<< для краткости фрагмент опущен >>