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.
terraform-provider-dynamix/wiki/1.1.0/07.01.13-Resource_dynamix_b...

15 KiB

Resource функция dynamix_bservice_group служит для управления группой базового (basic service). Базовый сервис служит шаблоном для создания вычислительных мощностей (computes) по заданным правилам. Все вычислительные мощности объединяются в вычислительные группы, с помощью которых мощностями можно управлять.

Работа с cloud_init

Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по ссылке.

Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!

Для использования cloud_init конфигурации, следует:

  1. Создать файл с расширением .tftpl в рабочей директории.
  2. Описать в созданном файле конфигурацию cloud_init в формате YAML:

initconfig.tftpl

---
users:
- groups: users, wheel
  name: user
  plain_text_passwd: examplePassword
  primary_group: user
  ssh_authorized_keys:
  - ssh-rsa EXAMPLE%id_rsa.pub
  sudo: ALL=(ALL) NOPASSWD:ALL
  1. Указать путь до файла initconfig.tftpl в качестве значения параметра cloud_init в ресурсе dynamix_bservice:
resource "dynamix_bservice" "service1" {
   # ...

   cloud_init = file("initconfig.tftpl")

   # ...
}
  1. Выполнить terraform apply

Конфигурация cloud_init применяется только при создании компьюта, во всех остальных случаях - игнорируется

Аргументы

После создания ресурса, необходимо обязательно в файле .tf, в котором описана группа, заполнить поле compgroup_id, чтобы продолжить работу с группами. Resource функция dynamix_bservice_group принимает следующие аргументы:

Аргумент Тип Обязательный Описание
service_id int ✔️ ID сервиса, на базе которого будет создана группа
Используется при создании
compgroup_name string ✔️ Название вычислительной группы
Используется при создании и редактировании
comp_count int ✔️ Кол-во мощностей в группе
Используется при создании и редактировании
При редактировании используется вместе с полем mode
cpu int ✔️ Кол-во используемых ядер в каждой мощности
Используется при создании и редактировании
ram int ✔️ Размер RAM, МБ, каждой мощности
Используется при создании и редактировании
disk int ✔️ Размер диска, ГБ, каждой мощности
Используется при создании и редактировании
image_id int ✔️ ID образа каждой мощности
Используется при создании
driver string ✔️ Драйвер
Используется при создании
sep_id int ID storage endpoint provider
sep_pool string Название SEP pool'а
cloud_init string Используется на этапе создания вм.
Параметры для утилиты cloud_init, которая используется в платформе DYNAMIX для первичного конфигурирования виртуальной машины после её создания.
role string Роль(тег) группы
Используется при создании и редактировании
timeout_start int Таймаут начала работы групп
Используется при создании
vinses []int Список ID виртуальных сетей
Используется либо vinses, либо extnets
Используется при создании и редактировании
extnets []int Список ID внешних сетей
Используется либо vinses, либо extnets
Используется при создании и редактировании
start bool Флаг запуска групп
Используется при редактировании
По-умолчанию: false
force_stop bool Флаг принудительной остановки групп
Используется при редактировании
Используется вместе с флагом start
mode string Режим изменения числа групп
Используется при редактировании
Возможные значения: RELATIVE и ABSOLUTE
force_update bool Флаг принудительного обновления мощностей
Используется при редактировании
Используется при изменении полей: ram, disk, compgroup_name, cpu, role
remove_computes []int Список id вычислительных мощностей для удаления
Используется при редактировании
parents []int Список ID групп-родителей
Используется при редактировании
compgroup_id id ID вычислительной группы
Поле является обязательным при редактировании группы
Так же применяется для формирования .tfstate - файла, при наличии группы в платформе

Возвращаемые значения

В случае успешного выполнения data source функция dynamix_bservice_group возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:

Параметр Тип Описание
account_id int ID аккаунта
account_name string Название аккаунта
computes []Struct{
id int
ip_addresses []string
name string
os_users []Struct{
login string
password string
}
}
Вычислительные мощности
ID вычислительной мощности
Список IP-адресов
Название вычислительной мощности
Пользователи системы
Логин пользователя
Пароль пользователя
 
 
compgroup_id int ID вычислительной группы
compgroup_name string Название вычислительной группы
consistency bool Флаг, последовательность
cpu int Кол-во ядер
created_by string Кем создан сервис
created_time int Время создания сервиса
deleted_by string Кем удален сервис
deleted_time int Время удаления сервиса
disk int Кол-во используемого места на дисках, ГБ
driver string Используемый драйвер
extnets []int Список ID внешних сетей
gid int Grid id
guid int Внутренний ID группы
image_id int ID образа, который используется в вычислительной группе
milestones int Вехи
service_id int ID сервиса
parents []int Список родительских групп
ram int Кол-во RAM, МБ
rg_id int ID ресурсной группы
rg_name string Название ресурсной группы
role string Роль(тег) группы
sep_id int ID sep
seq_no int Номер последовательности
status string Статус сервиса
tech_status string Технический статус сервиса
timeout_start int Таймаут перед стартом
updated_by string Кем сервис был обновлен
updated_time int Время последнего обновления
vinses []int Список ID виртуальных сетей

Пример использования

Пример вызова resource функции dynamix_bservice:

resource "dynamix_bservice_group" "bsg" {
  #id basic service
  #обязательный параметр
  #тип - целое число
  service_id = 444444

  #название группы
  #обязательный параметр
  #тип - строка
  compgroup_name = "tf_group_rename"

  #id группы
  #необязательный параметр
  #тип - целое число
  #применяется при редактировании группы, либо при создании .tfstate - файла, если группа имеется в плафторме
  compgroup_id = 33333

  #кол-во вычислительных ресурсов
  #обязательный параметр
  #тип - целое число
  #используется так же для редактирования группы
  comp_count = 1

  #кол-во ядер на выч. ресурс
  #обязательный параметр
  #тип - целое число
  #используется так же для редактирования группы
  cpu = 2

  #кол-во оперативной памяти на выч. ресурс, в МБ
  #обязательный параметр
  #тип - целое число
  #используется так же для редактирования группы
  ram = 256

  #размер диска для выч. ресурса, в ГБ
  #обязательный параметр
  #тип - целое число
  #используется так же для редактирования группы
  disk = 11

  #id образа диска
  #обязательный параметр
  #тип - целое число
  image_id = 2222

  #драйвер
  #обязательный параметр
  #тип - строка
  driver = "kvm_x86"

  #id Storage endpoint provider 
  #необязательный параметр
  #тип - целое число
  sep_id = 3

  #Наименование SEPPool используется если установлен sepId, также может быть пустым
  #необязательный параметр
  #тип - строка
  sep_pool = "name"

  #тег группы
  #необязательный параметр
  #тип - строка
  #используется при создании и редактировании ресурса
  role           = "tf_test_changed"

  #id сетей extnet
  #необязательный параметр
  #тип - массив целых чисел
  #должен быть использован vins или extnets
  extnets = [1111, 2222]

  #id сетей vinses
  #необязательный параметр
  #тип - массив целых чисел
  #должен быть использован vins или extnets
  vinses        = [1111, 2222]

  #время таймуата перед стартом
  #необязательный параметр
  #тип - целое число
  #используется при создании ресурса
  timeout_start  = 0

  #Перечень аргументов для cloud-init создаваемым группам узлов Worker
  #необязательный параметр
  #тип - файл в формате YAML
  cloud_init = file("initconfig.tftpl")

  #id групп родителей
  #необязательный параметр
  #тип - массив целых чисел
  #используется при редактировании ресурса
  #parents = [2222]

  #принудительное обновление параметров выч. мощностей  (ram,disk,cpu) и имени группы
  #необязательный параметр
  #тип - булев
  #используется при редактировании ресурса
  #по-умолчанию - false
  #force_update   = true

  #старт/стоп вычислительных мощностей
  #необязательный параметр
  #тип - булев
  #используется при редактировании ресурса
  #по-умолчанию - false
  #start = false

  #принудительная остановка вычислительных мощностей
  #необязательный параметр
  #тип - булев
  #используется при редактировании и остановке группы
  #по-умолчанию - false
  #force_stop = false

  #удаление вычислительных мощностей
  #необязательный параметр
  #тип - массив целых чисел
  #используется при редактировании
  #remove_computes = [32287]

  #режим увеличения числа выч. мощностей
  #необязательный параметр
  #тип - строка
  #используется в связке с comp_count при редактировании группы
  #возможные варианты - RELATIVE и ABSOLUTE
  #по-умолчанию - "RELATIVE"
  #mode = "RELATIVE"

}

Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DYNAMIX см. соответствующий раздел).

После успешного завершения такого вызова dynamix_bservice_group в переменной dynamix_bservice_group.bsg будут сохранены возвращаемые значения.