You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decort-ansible/wiki/5.3.0/модуль-decort_rg.md

17 KiB

Модуль 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 Значения:
oauth2
jwt
Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.
controller_url (string) URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным.
def_netType (string)
Значения:
PRIVATE
PUBLIC
NONE
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
Данный параметр является обязательным для указанного режима.
Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook.
Если этот параметр не определен в 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 Значения:
present
absent
enabled
disabled
Default: present
Целевое состояние ресурсной группы.
permanently (bool)
Default: false
Параметр, использующийся при удалении ресурсной группы. При значении true - ресурсная группа удалится безвозвратно, а при false - попадёт в корзину.
verify_ssl (bool)
Default: true
Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах.

Возвращаемые значения модуля 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 }}"