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/7.0.0/модуль-decort_rg.md

14 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) Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе.
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) Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы.
rename (string) Новое имя ресурсной группы.
Возможно переименование только включенной ресурсной группы.
rg_id (int) Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы rg_name и account_id/account_name
rg_name (string) Имя ресурсной группы. Данный параметр является обязательным при создании.
sep_pools (list) Список словарей, описывающих доступные пулы СХД.
Ключи словаря:
sep_id (int) - идентификатор системы хранения данных.
pool_names (list) - список названий пулов системы хранения данных.
Чтобы очистить список доступных пулов, нужно указать пустой список [].
state Значения:
present
absent
enabled
disabled
Default: present
Целевое состояние ресурсной группы.

Возвращаемые значения модуля 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 Список идентификаторов виртуальных машин ресурсной группы.
uniqPools 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 }}"

В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени 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