24 KiB
Модуль decort_rg
Обзор модуля decort_rg
Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет:
- создавать ресурсные группы
- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без)
- восстанавливать ресурсные группы из корзины
- включать/отключать ресурсные группы
- запрашивать информацию об уже существующих ресурсных группах
- изменять ресурсные группы:
- переименовывать
- настраивать квоты
- задавать стандартную сеть
- настраивать права доступа для пользователей
- изменять доступные пулы СХД
- изменять описание
Параметры модуля decort_rg
Ниже приведен список параметров для модуля decort_rg (за исключением общих параметров):
| Параметр | Тип, допустимые значения | Описание |
|---|---|---|
| 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) Значения: PRIVATEPUBLICNONEDefault: 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 | Значения:presentabsentenableddisabledDefault: 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