|
|
# Модуль decort_rg
|
|
|
|
|
|
## Обзор модуля decort_rg
|
|
|
|
|
|
Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет:
|
|
|
|
|
|
- создавать ресурсные группы
|
|
|
- удалять ресурсные группы (в корзину или безвозвратно)
|
|
|
- восстанавливать ресурсные группы из корзины
|
|
|
- включать/отключать ресурсные группы
|
|
|
- запрашивать информацию об уже существующих ресурсных группах
|
|
|
- изменять ресурсные группы:
|
|
|
- переименовывать
|
|
|
- настраивать квоты
|
|
|
- задавать стандартную сеть
|
|
|
- настраивать права доступа для пользователей
|
|
|
|
|
|
## Параметры модуля decort_rg
|
|
|
|
|
|
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_rg. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module 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) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. |
|
|
|
| annotation | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. |
|
|
|
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
|
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. |
|
|
|
| authenticator | Значения:<br>`oauth2`<br>`jwt`| Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.|
|
|
|
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным. |
|
|
|
| def_netType | (string) <br>Значения:<br>`PRIVATE`<br>`PUBLIC`<br>`NONE`<br>Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. |
|
|
|
| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. |
|
|
|
| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети. Используется при создании РГ для подключения внешней сети к внутренней сети, которая будет создана и задана как сеть по умолчанию для РГ. |
|
|
|
| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. |
|
|
|
| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. |
|
|
|
| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. |
|
|
|
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br>Данный параметр является обязательным для указанного режима.<br>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
|
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
|
| rename | (string) | Новое имя ресурсной группы. Используется при переименовании ресурсной группы. |
|
|
|
| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. |
|
|
|
| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. |
|
|
|
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` |
|
|
|
| state | Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>Default: `present` | Целевое состояние ресурсной группы. |
|
|
|
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. |
|
|
|
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
|
|
|
|
## Возвращаемые значения модуля decort_rg
|
|
|
|
|
|
Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами:
|
|
|
| Ключ | Тип данных | Описание |
|
|
|
|------|------------|----------|
|
|
|
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. |
|
|
|
| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. |
|
|
|
| id | int | Уникальный целочисленный идентификатор ресурсной группы. |
|
|
|
| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. |
|
|
|
| state | string | Текущее состояние ресурсной группы. |
|
|
|
| quota | dict | Текущие квоты ресурсной группы. |
|
|
|
| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. |
|
|
|
| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. |
|
|
|
| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. |
|
|
|
| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. |
|
|
|
| computes | list | Список идентификаторов виртуальных машин ресурсной группы. |
|
|
|
|
|
|
## Пример использования модуля 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
|
|
|
net_transfer: 1000
|
|
|
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
|
|
|
net_transfer: 1000
|
|
|
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_kvmvm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом:
|
|
|
|
|
|
```
|
|
|
<прочие детали опущены>
|
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
|
``` |