Files
wiki-decort-ansible/12.0.0/модуль-decort_rg.md
2026-06-01 18:15:20 +03:00

24 KiB
Raw Permalink Blame History

Модуль 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)
Значения:
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