# Модуль 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_id int Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.
blkdiscard bool true - unmap
false - ignore
cache_mode str Режим кэширования диска.
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 Диск помечен для очистки после удаления.
## Примеры использования ### Создать #### С указанием описания ``` - 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 }}" ```