15 KiB
Resource функция dynamix_bservice_group служит для управления группой базового (basic service). Базовый сервис служит шаблоном для создания вычислительных мощностей (computes) по заданным правилам. Все вычислительные мощности объединяются в вычислительные группы, с помощью которых мощностями можно управлять.
Работа с cloud_init
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по ссылке.
Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!
Для использования cloud_init конфигурации, следует:
- Создать файл с расширением
.tftpl
в рабочей директории. - Описать в созданном файле конфигурацию 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
- Указать путь до файла
initconfig.tftpl
в качестве значения параметраcloud_init
в ресурсеdynamix_bservice
:
resource "dynamix_bservice" "service1" {
# ...
cloud_init = file("initconfig.tftpl")
# ...
}
- Выполнить
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
будут сохранены возвращаемые значения.