# Модуль decort_rg ## Обзор модуля decort_rg Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет: - создавать ресурсные группы - удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без) - восстанавливать ресурсные группы из корзины - включать/отключать ресурсные группы - запрашивать информацию об уже существующих ресурсных группах - изменять ресурсные группы: - переименовывать - настраивать квоты - задавать стандартную сеть - настраивать права доступа для пользователей - изменять доступные пулы СХД - изменять описание ## Параметры модуля decort_rg Ниже приведен список параметров для модуля **decort_rg** (за исключением [общих параметров](./введение.md#общие-параметры-модулей)): | Параметр | Тип, допустимые значения | Описание | |----------|--------------------------|----------| | account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. | | account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. | | access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе.
Ключи словаря:
• `action` (str) - режим изменения прав доступа для указанного пользователя. Обязательный параметр. Значения: `grant`, `revoke`
• `user` (str) - имя пользователя. Обязательный параметр.
• `right` (str) - права доступа. Обязателен при `action: grant`. Значения: `R`, `RCX`, `ARCXDU`. | | description | (string) | Текстовое описание ресурсной группы. | | def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. | | def_netType | (string)
Значения:
`PRIVATE`
`PUBLIC`
`NONE`
Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. | | extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.
Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.
Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. | | extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. | | ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. | | owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. | | permanently | (bool)
Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. | | quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы.
Ключи словаря:
• `cpu` (int) - количество виртуальных процессоров
• `disk` (int) - объём дисков в ГБ
• `ext_ips` (int) - количество внешних IP-адресов
• `ram` (int) - объём оперативной памяти в МБ
• `storage_policies` (list) - список словарей, описывающих квоты по политикам хранения. Ключи словаря: `id` (int) - идентификатор политики хранения; `storage_size_gb` (int) - объём дисков.| | recursive_deletion | (bool)
Default: `false` | Рекурсивное удаление.
Если `true`, то при удалении РГ будет удалено всё её содержимое.
Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. | | rename | (string) | Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы. | | rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` | | rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. | | sdn_access_group_id | (string) | Идентификатор группы доступа SDN. | | sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
• `sep_id` (int) - идентификатор системы хранения данных.
• `pool_names` (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.| | state | Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние ресурсной группы. | ## Возвращаемые значения модуля decort_rg Модуль **decort_rg** возвращает информацию о ресурсной группе в виде словаря `facts` со следующими ключами:
Ключ Тип
данных
Описание
account_id int Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа.
account_name str Имя аккаунта, которому принадлежит данная ресурсная группа.
acl list[str, any] Список словарей, описывающих доступы пользователей.
access_type str Тип доступа.
can_be_deleted bool | null Может ли быть удалён.
explicit bool Видимость ресурсной группы.
guid str | null Идентификатор.
status str Статус.
type str Тип.
user_emails list[str] | null Список адресов электронной почты.
user_name str Имя пользователя.
cpu_allocation_parameter str Режим выделения ЦП.
cpu_allocation_ratio int Коэффициент для режима выделения ЦП.
created_by str Имя пользователя, создавшего ресурсную группу.
created_timestamp int Unix-время создания.
created_datetime str Дата и время создания.
default_net_id int Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе.
default_net_type str Тип сети по умолчанию в данной ресурсной группе.
deleted_by str Имя пользователя, удалившего ресурсную группу.
deleted_timestamp int Unix-время удаления.
deleted_datetime str Дата и время удаления.
description str Текстовое описание ресурсной группы.
dirty bool
grid_id int Идентификатор ЦОДа.
guid int Идентификатор.
id int Идентификатор.
lock_status str Статус блокировки.
milestones int Количество событий.
name str Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа.
quotas dict[str, any] Словарь, описывающий квоты.
cpu_count int Количество виртуальных процессоров.
disk_size_gb int Объём дисков в ГБ.
gpu_count int Количество графических процессоров.
ext_ip_count int Количество внешних IP-адресов.
ram_size_mb float | int Объём оперативной памяти в МБ.
storage_size_gb int Объём дисков.
storage_policies list[dict[str, int]] Список словарей, описывающий квоты по политикам хранения.
id int Идентификатор политики хранения.
storage_size_gb int Объём дисков.
resource_types list[str] Список разрешённых типов ресурсов.
sdn_access_group_id str Идентификатор группы доступа SDN.
secret str
sep_pools list[str] Список доступных пулов СХД.
status str Статус.
storage_policy_ids list[int] Идентификаторы политик хранения.
updated_by str Имя пользователя, обновившего ресурсную группу.
updated_timestamp int Unix-время обновления.
updated_datetime str Дата и время обновления.
vins_ids list[int] Список идентификаторов внутренних сетей ресурсной группы.
vm_features list[str] Список дополнительных возможностей гипервизора, доступных ВМ.
vm_ids list[int] Список идентификаторов виртуальных машин ресурсной группы.
## Пример использования модуля decort_rg В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount. ``` - name: manage resource group decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" state: present register: my_rg delegate_to: localhost ``` В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount, также задать квоты и выдать права на чтение пользователю MyUser. ``` - name: manage resource group decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" access: action: "grant" user: "MyUser" right: "R" quotas: cpu: 16 ram: 16384 disk: 100 ext_ips: 20 storage_policies: - id: "{{ storage_policy_id }}" storage_size_gb: "{{ storage_size_gb }}" state: present register: my_rg delegate_to: localhost ``` В данном примере показано, как выдать доступ на чтение и запись пользователю MyUser в ресурсной группе по имени MyRG в аккаунте MyAccount. ``` - name: manage resource group decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" access: action: "grant" user: "MyUser" right: "RCX" state: present register: my_rg delegate_to: localhost ``` В данном примере показано, как сменить квоту в ресурсной группе по имени MyRG в аккаунте MyAccount. ``` - name: manage resource group decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" quotas: cpu: 16 ram: 16384 disk: 100 ext_ips: 20 storage_policies: - id: "{{ storage_policy_id }}" storage_size_gb: "{{ storage_size_gb }}" state: present register: my_rg delegate_to: localhost ``` В данном примере показано, как изменить сеть по умолчанию в ресурсной группе по имени MyRG в аккаунте MyAccount. ``` - name: manage resource group decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" def_netType: "PRIVATE" def_netId: 99 state: present register: my_rg delegate_to: localhost ``` В данном примере показано, как переименовать ресурсную группу по имени MyRG на новое имя "NewRg" в аккаунте MyAccount. ``` - name: manage resource group decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" rename: "NewRg" rg_id: 27 state: present register: my_rg delegate_to: localhost ``` В данном примере результат работы модуля decort_rg записывается в переменную my_rg. Модули DECORT, которым для работы требуется ресурсная группа, в качестве одного из параметров, как правило, принимают идентификатор `rg_id`. Так, например, используя модуль `decort_vm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом: ``` <прочие детали опущены> rg_id: "{{ my_rg.facts.id }}" ``` В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount. ``` - name: change available sep pools decort_rg: authenticator: oauth2 app_id: "{{ my_app_id }}" app_secret: "{{ my_app_secret }}" oauth2_url: "https://sso.digitalenergy.online" controller_url: "https://cloud.digitalenergy.online" account_name: "MyAccount" rg_name: "MyRG" sep_pools: - sep_id: 1 pool_names: - sep1_pool1 - sep1_pool2 - sep_id: 2 pool_names: - sep2_pool1 state: present register: my_rg delegate_to: localhost ```