21 KiB
Модуль decort_disk
Обзор модуля decort_disk
Модуль decort_disk предназначен для выполнения следующих действий над дисками:
- создавать
- удалять (в корзину или безвозвратно)
- восстановливать из корзины
- изменять:
- имя
- размер
- лимиты ввода/вывода
- включать/отключать общий доступ
- политику хранения
Параметры модуля decort_disk
Ниже приведен список параметров для модуля decort_disk (за исключением общих параметров авторизации):
| Параметр | Тип | Описание | |||||
|---|---|---|---|---|---|---|---|
| account_id | (int) |
Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск.
При идентификации диска по имени (см. параметр name) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр account_name). Если одновременно заданы и account_id, и account_name, то account_name игнорируется. |
|||||
| account_name | (str) |
Имя аккаунта, которому принадлежит данный диск.
При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр account_id). Если одновременно заданы и account_id, и account_name, то account_name игнорируется. |
|||||
| description | (str) |
Текстовое описание диска.
Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется. |
|||||
| id | (int) |
Уникальный целочисленный идентификатор диска.
Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры name, account_name и account_id игнорируются. |
|||||
| force_detach |
(bool)
Default: false
|
Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.
По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите force_detach: true.
|
|||||
| limitIO | (dict) |
Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду.
Обратите внимание, что параметры с total не задаются вместе с read/write. |
|||||
| read_bytes_sec | (int) | ||||||
| read_bytes_sec_max | (int) | ||||||
| read_iops_sec | (int) | ||||||
| read_iops_sec_max | (int) | ||||||
| size_iops_sec | (int) | ||||||
| total_bytes_sec | (int) | ||||||
| total_bytes_sec_max | (int) | ||||||
| total_iops_sec | (int) | ||||||
| total_iops_sec_max | (int) | ||||||
| write_bytes_sec | (int) | ||||||
| write_bytes_sec_max | (int) | ||||||
| write_iops_sec | (int) | ||||||
| write_iops_sec_max | (int) | ||||||
| name | (str) |
Имя диска.
Для идентификации диска требуется либо его name и информация об аккаунте (account_id или account_name), которому принадлежит диск, либо его id. |
|||||
| permanently |
(bool)
Default: false
|
Параметр, использующийся при удалении диска.
При значении true - диск удалится навсегда, а при false - попадёт в корзину.
|
|||||
| place_with | (int) |
Идентификатор образа диска, из которого следует взять параметр sep_id, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска.
Данный параметр является опциональным и используется только на стадии создания диска. Если задан place_with, то sep_id игнорируется. |
|||||
| pool | (str) |
Название пула на системе хранения данных, в рамках которой следует создать данный диск.
Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. |
|||||
| reason |
(str)
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
|
Целевое состояние диска. | |||||
| storage_policy_id | (int) |
Идентификатор политики хранения.
Обязателен при создании. |
|||||
Возвращаемые значения модуля decort_disk
Модуль decort_disks возвращает информацию о диске в виде словаря facts со следующими ключами:
| Ключ | Тип | Описание | |||||
|---|---|---|---|---|---|---|---|
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск. | |||||
| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь. | |||||
| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск. | |||||
| id | int | Уникальный целочисленный идентификатор данного диска. | |||||
| iotune | dict | Текущие ограничения ввода/вывода диска. | |||||
| read_bytes_sec | int | null | ||||||
| read_bytes_sec_max | int | null | ||||||
| read_iops_sec | int | null | ||||||
| read_iops_sec_max | int | null | ||||||
| size_iops_sec | int | null | ||||||
| total_bytes_sec | int | null | ||||||
| total_bytes_sec_max | int | null | ||||||
| total_iops_sec | int | null | ||||||
| total_iops_sec_max | int | null | ||||||
| write_bytes_sec | int | null | ||||||
| write_bytes_sec_max | int | null | ||||||
| write_iops_sec | int | null | ||||||
| write_iops_sec_max | int | null | ||||||
| name | str | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен. | |||||
| pool | str | Имя пула на системе хранения данных, в котором размещаются ресурсы диска. | |||||
| sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска. | |||||
| size | int | Размер диска в ГБ. | |||||
| size_available | float | Размер незанятого пространства в ГБ. | |||||
| size_used | float | Размер используемого пространства в ГБ. | |||||
| state | str | Текущий статус диска. | |||||
| storage_policy_id | int | Идентификатор политики хранения. | |||||
| to_clean | bool | Диск помечен для очистки после удаления. | |||||
Пример использования модуля decort_disk
В данном примере создаётся диск размером 50ГБ (size: 50), на ресурсах системы хранения данных под номером 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
description: "Disk example"
pool: data01
storage_policy_id: 1
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 }}"
<< для краткости фрагмент опущен >>