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.0.0/07.01.13-Resource_dynamix_b...

253 lines
15 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

_Resource_ функция **dynamix_bservice_group** служит для управления группой базового (basic service). Базовый сервис служит шаблоном для создания вычислительных мощностей (computes) по заданным правилам. Все вычислительные мощности объединяются в вычислительные группы, с помощью которых мощностями можно управлять.
### Работа с cloud_init
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
**Пароли, указанные в 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
```
3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `dynamix_bservice`:
```terraform
resource "dynamix_bservice" "service1" {
# ...
cloud_init = file("initconfig.tftpl")
# ...
}
```
4. Выполнить `terraform apply`
**Конфигурация cloud_init применяется только при создании компьюта, во всех остальных случаях - игнорируется**
## Аргументы
После создания ресурса, необходимо **обязательно** в файле .tf, в котором описана группа, заполнить поле compgroup_id, чтобы продолжить работу с группами.
_Resource_ функция **dynamix_bservice_group** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | :---: | --- |
| service_id | int | :heavy_check_mark: | ID сервиса, на базе которого будет создана группа<br/>Используется при создании |
| compgroup_name | string | :heavy_check_mark: | Название вычислительной группы<br/>Используется при создании и редактировании |
| comp_count | int | :heavy_check_mark: | Кол-во мощностей в группе<br/>Используется при создании и редактировании<br/>При редактировании используется вместе с полем mode |
| cpu | int | :heavy_check_mark: | Кол-во используемых ядер в каждой мощности<br/>Используется при создании и редактировании |
| ram | int | :heavy_check_mark: | Размер RAM, МБ, каждой мощности<br/>Используется при создании и редактировании |
| disk | int | :heavy_check_mark: | Размер диска, ГБ, каждой мощности<br/>Используется при создании и редактировании |
| image_id | int | :heavy_check_mark: | ID образа каждой мощности<br/>Используется при создании |
| driver | string | :heavy_check_mark: | Драйвер<br/>Используется при создании |
| sep_id | int | :x: | ID storage endpoint provider |
| sep_pool | string | :x: | Название SEP pool'а |
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DYNAMIX для первичного конфигурирования виртуальной машины после её создания.
| role | string | :x: | Роль(тег) группы<br/>Используется при создании и редактировании |
| timeout_start | int | :x: | Таймаут начала работы групп<br/>Используется при создании |
| vinses | []int | :x: | Список ID виртуальных сетей<br/>Используется либо vinses, либо extnets<br/>Используется при создании и редактировании |
| extnets | []int | :x: | Список ID внешних сетей<br/>Используется либо vinses, либо extnets<br/>Используется при создании и редактировании |
| start | bool | :x: | Флаг запуска групп<br/>Используется при редактировании<br/>По-умолчанию: false |
| force_stop | bool | :x: | Флаг принудительной остановки групп<br/>Используется при редактировании<br/>Используется вместе с флагом start |
| mode | string | :x: | Режим изменения числа групп<br/>Используется при редактировании<br/>Возможные значения: RELATIVE и ABSOLUTE |
| force_update | bool | :x: | Флаг принудительного обновления мощностей<br/>Используется при редактировании<br/>Используется при изменении полей: ram, disk, compgroup_name, cpu, role |
| remove_computes | []int | :x: | Список id вычислительных мощностей для удаления<br/>Используется при редактировании |
| parents | []int | :x: | Список ID групп-родителей<br/>Используется при редактировании |
| compgroup_id | id | :x: | ID вычислительной группы<br/>Поле является **обязательным** при редактировании группы<br/>Так же применяется для формирования .tfstate - файла, при наличии группы в платформе |
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **dynamix_bservice_group** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | ID аккаунта |
| account_name | string | Название аккаунта |
| computes | []Struct{<br/>id int<br/>ip_addresses []string<br/>name string<br/>os_users []Struct{<br/>login string<br/>password string<br/>} <br/>} | Вычислительные мощности<br/>ID вычислительной мощности<br/>Список IP-адресов<br/>Название вычислительной мощности<br/>Пользователи системы<br/>Логин пользователя<br/>Пароль пользователя<br/>&nbsp;<br/>&nbsp;<br/> |
| 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**:
```terraform
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 см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-dynamix/src/branch/main/wiki/1.0.0/04.02-Инициализация-Terraform-провайдера-DYNAMIX.md)).
После успешного завершения такого вызова **dynamix_bservice_group** в переменной `dynamix_bservice_group.bsg` будут сохранены возвращаемые значения.