# Модуль decort_disk ## Обзор модуля decort_disk Модуль **decort_disk** предназначен для выполнения следующих действий над дисками: - **создать** (см. [примеры](#создать)) - **с указанием описания** (см. [параметр description](#description) и [примеры](#с-указанием-описания)) - **c указанием СХД** (см. [параметр sep_id](#sep_id) и [примеры](#с-указанием-схд)) - **с указанием СХД и пула** (см. [параметр sep_id](#sep_id) и [параметр pool](#pool) и [примеры](#с-указанием-схд-и-пула)) - **удалить** (см. [примеры](#удалить)) - **в корзину** (см. [параметр state](#state) и [примеры](#в-корзину)) - **безвозвратно** (см. [параметр state](#state) и [параметр permanently](#permanently) и [примеры](#безвозвратно)) - **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины)) - **изменить** (см. [примеры](#изменить)) - **имя** (см. [параметр name](#param_name) и [примеры](#имя)) - **размер** (см. [параметр size](#size) и [примеры](#размер)) - **лимиты ввода/вывода** (см. [параметр limitIO](#limitIO) и [примеры](#лимиты-вводавывода)) - **политику хранения** (см. [параметр storage_policy_id](#storage_policy_id) и [примеры](#политику-хранения)) - **включить/отключить общий доступ** (см. [параметр shareable](#shareable) и [примеры](#включитьотключить-общий-доступ)) ## Параметры модуля decort_disk Ниже приведен список параметров для модуля **decort_disk** (за исключением [общих параметров](./введение.md#общие-параметры-модулей)):
Параметр Тип Описание
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) Название пула на системе хранения данных, в рамках которой следует создать данный диск.
Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками.
Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию.
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_name str Имя аккаунта.
account_id int Идентификатор аккаунта.
acl dict
blkdiscard bool true - unmap
false - ignore
block_size str Размер блока.
cache_mode str Режим кеширования диска
created_by str Имя пользователя, создавшего диск.
created_datetime str | null Дата и время создания.
created_timestamp int Unix-время создания.
deleted_by str | null Имя пользователя, удалившего диск.
deleted_datetime str | null Дата и время удаления.
deleted_timestamp int | null Unix-время удаления.
description str Описание.
destruction_datetime str | null Дата и время уничтожения.
destruction_timestamp int | null Unix-время уничтожения.
device_name str | null Имя устройства.
grid_id int Идентификатор ЦОД.
id int Идентификатор.
image_id int Идентификатор образа.
image_ids list[int] Идентификаторы образов.
independent bool Является ли диск независимым.
io_tune dict[str, int | null] Словарь, описывающий текущие ограничения ввода/вывода диска.
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
milestones int Идентификатор состояния диска.
name str Название.
params str Параметры.
parent_id int Идентификатор родителя.
present_to dict[str, int] Словарь, описывающий, к каким узлам подключён диск. Ключом является идентификатор узла, а значением - количество подключений диска к этому узлу.
provision str Способ выделения физического пространства.
purge_datetime str | null Дата и время безвозвратного удаления.
purge_timestamp int | null Unix-время безвозвратного удаления.
replication dict[str, any] Словарь, описывающий репликацию диска.
disk_id int Идентификатор диска.
pool_id str Идентификатор пула.
role str Роль.
self_volume_id str
storage_id str Идентификатор хранилища.
volume_id str
res_id str Идентификатор ресурса.
res_name str Имя ресурса.
role str Роль.
sep_id int Идентификатор СХД.
sep_pool_name str Название пула СХД.
sep_type str Тип СХД.
shared bool Предоставлен ли общий доступ к диску.
size_available_gb int Доступный объем в ГБ.
size_max_gb int Максимальный объем в ГБ.
size_used_gb int Используемый объем в ГБ.
snapshots list[dict[str, any]] Снимки.
guid str Идентификатор снимка.
label str Имя снимка.
reference_id str
res_id str Идентификатор ресурса.
snapshot_set_guid str
snapshot_set_datetime str | null Дата и время создания набора снимков.
snapshot_set_timestamp int Unix-время создания набора снимков.
timestamp int Unix-время создания.
status str Статус.
storage_policy_id int Идентификатор политики хранения.
tech_status str Технический статус.
to_clean bool Диск помечен для очистки после удаления.
updated_by str | null Пользователь, обновивший диск.
updated_datetime str | null Дата и время обновления.
updated_timestamp int | null Unix-время обновления.
vms dict[str, str] Словарь, описывающий ВМ, к которым подключен диск. Ключом является идентификатор ВМ, а значением - имя ВМ.
## Примеры использования ### Создать #### С указанием описания ``` - name: Example hosts: localhost tasks: - name: Create disk with description decort_disk: # Параметры для авторизации упущены account_id: "{{ account_id }}" name: "{{ disk_name }}" size: "{{ disk_size }}" storage_policy_id: "{{ storage_policy_id }}" description: "{{ disk_description }}" ``` #### С указанием СХД ``` - name: Example hosts: localhost tasks: - name: Create disk with sep decort_disk: # Параметры для авторизации упущены account_id: "{{ account_id }}" name: "{{ disk_name }}" size: "{{ disk_size }}" storage_policy_id: "{{ storage_policy_id }}" sep_id: "{{ sep_id }}" ``` #### С указанием СХД и пула ``` - name: Example hosts: localhost tasks: - name: Create disk with sep and pool decort_disk: # Параметры для авторизации упущены account_id: "{{ account_id }}" name: "{{ disk_name }}" size: "{{ disk_size }}" storage_policy_id: "{{ storage_policy_id }}" sep_id: "{{ sep_id }}" pool: "{{ sep_pool_name }}" ``` ### Удалить #### В корзину ``` - name: Example hosts: localhost tasks: - name: Delete decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" state: absent ``` #### Безвозвратно ``` - name: Example hosts: localhost tasks: - name: Delete permanently decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" permanently: true state: absent ``` ### Восстановить из корзины ``` - name: Example hosts: localhost tasks: - name: Restore decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" state: present ``` ### Изменить #### Имя ``` - name: Example hosts: localhost tasks: - name: Change name decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" name: "{{ disk_new_name }}" ``` #### Размер ``` - name: Example hosts: localhost tasks: - name: Change size decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" size: "{{ disk_new_size }}" ``` #### Лимиты ввода/вывода ``` - name: Example hosts: localhost tasks: - name: Change IO limits decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" limitIO: read_bytes_sec: "{{ read_bytes_sec }}" write_bytes_sec: "{{ write_bytes_sec }}" read_iops_sec: "{{ read_iops_sec }}" write_iops_sec: "{{ write_iops_sec }}" read_bytes_sec_max: "{{ read_bytes_sec_max }}" write_bytes_sec_max: "{{ write_bytes_sec_max }}" read_iops_sec_max: "{{ read_iops_sec_max }}" write_iops_sec_max: "{{ write_iops_sec_max }}" size_iops_sec: "{{ size_iops_sec }}" ``` #### Политику хранения ``` - name: Example hosts: localhost tasks: - name: Change storage policy decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" storage_policy_id: "{{ disk_new_storage_policy_id }}" ``` #### Включить/отключить общий доступ ``` - name: Example hosts: localhost tasks: - name: Change shareable decort_disk: # Параметры для авторизации упущены id: "{{ disk_id }}" shareable: "{{ shareable }}" ```