Управление шаблонами сервиса#
Параметры сервиса, задаваемые в шаблоне#
Для установки значений параметров шаблона сервиса используется формат JSON.
Общие параметры сервиса#
В общем случае для формирования шаблона сервиса необходимо определить значения параметров, приведенных в таблице:
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
name |
строка |
Нет |
Наименование сервиса |
deployment |
строка |
Нет |
Стратегия развертывания. Возможные значения:
|
shutdown_action |
строка |
Нет |
Режим выключения ВМ. Может принимать следующие значения:
Если значение параметра не установлено, используется значение, установленное в конфигурационном файле /etc/one/oneflow-server.conf службы OneFlow |
ready_status_gate |
логический |
Нет |
Ожидать полного запуска ВМ, а именно:
|
custom_attrs |
объект |
Нет |
Пользовательские параметры (неупорядоченный набор пар «параметр: значение») |
networks |
объект |
Нет |
Параметры виртуальной сети (неупорядоченный набор пар «параметр: значение») |
roles |
массив ролей |
Да |
Упорядоченная последовательность значений параметров группы ВМ с заданной ролью (см. ниже) |
Параметры группы ВМ с заданной ролью#
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
name |
строка |
Да |
Наименование группы ВМ с заданной ролью |
cardinality |
число |
Нет |
Количество ВМ в группе (по умолчанию – одна) |
vm_template |
число |
Да |
Идентификатор шаблона для развертывания ВМ с заданной ролью |
parents |
массив строк |
Нет |
Перечень вышестоящих групп (имеющих приоритет при запуске) |
shutdown_action |
строка |
Нет |
Режим выключения ВМ. Может принимать следующие значения:
Если значение параметра не установлено, используется значение, установленное в общих параметрах сервиса |
min_vms |
число |
Нет (Да, если установлена политика эластичности) |
Минимальное количество ВМ в группе. Параметр используется при автоматическом масштабировании сервиса в соответствии с заданными правилами (политикой эластичности) |
max_vms |
число |
Нет (Да, если установлена политика эластичности) |
Максимальное количество ВМ в группе. Параметр используется при автоматическом масштабировании сервиса в соответствии с заданными правилами (политикой эластичности) |
cooldown |
число |
Нет |
Длительность паузы (в секундах) после выполнения автоматического масштабирования сервиса. Если значение параметра не установлено, используется значение, установленное в конфигурационном файле /etc/one/oneflow-server.conf службы OneFlow |
elasticity_policies |
массив политик |
Нет |
Упорядоченная последовательность значений параметров политики эластичности (см. ниже) |
scheduled_policies |
массив политик |
Нет |
Упорядоченная последовательность значений параметров политики планирования (см. ниже) |
Параметры политики эластичности#
Для автоматической перенастройки сервиса в соответствии с заданными правилами (политикой эластичности) необходимо определить значения параметров, приведенных в таблице:
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
type |
строка |
Да |
Тип автоматического масштабирования. Может принимать следующие значения:
|
adjust |
число |
Да |
Шаг положительной/отрицательной корректировки или размер группы ВМ (в зависимости от типа автоматического масштабирования). В случае необходимости уменьшить количество развернутых ВМ, перед числом следует указать знак «-» |
min_adjust_step |
число |
Нет |
Необязательный параметр для автоматической настройки PERCENTAGE_CHAGE. Минимальный шаг положительной/отрицательной корректировки – наименьшее количество ВМ, на которое будет изменен размер группы |
expression |
строка |
Да |
Условие (логическое выражение) при котором необходимо применить политику эластичности |
period_number |
число |
Нет |
Количество периодов времени, на протяжении которых выполняется условие, указанное в параметре expression. Только по прошествии этого времени будет применена политика эластичности |
period |
число |
Нет |
Длительность периода (в секундах) – используется совместно с параметром period_number |
cooldown |
число |
Нет |
Длительность паузы (в секундах) после выполнения автоматического масштабирования сервиса. Если значение параметра не установлено, используется значение, установленное в параметров группы ВМ с заданной ролью (см. выше) |
Параметры политики планирования#
Для автоматического масштабирования сервиса в соответствии с расписанием (политикой планирования) необходимо определить значения параметров, приведенных в таблице:
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
type |
строка |
Да |
Тип автоматической настройки. Может принимать следующие значения:
|
adjust |
число |
Да |
Шаг положительной/отрицательной корректировки или размер группы ВМ (в зависимости от типа автоматического масштабирования). В случае необходимости уменьшить количество развернутых ВМ, перед числом следует указать знак «-» |
min_adjust_step |
число |
Нет |
Необязательный параметр для автоматической настройки PERCENTAGE_CHAGE. Минимальный шаг положительной/отрицательной корректировки – наименьшее количество ВМ, на которое будет изменен размер группы |
recurrence |
строка |
Нет |
Расписание начала автоматического масштабирования (в формате команды cron) |
start_time |
строка |
Нет |
Точное время начала автоматического масштабирования |
cooldown |
число |
Нет |
Длительность паузы (в секундах) после выполнения автоматического масштабирования сервиса. Если значение параметра не установлено, используется значение, установленное в параметров группы ВМ с заданной ролью (см. выше) |
Управление шаблонами сервиса в интерфейсе командной строки#
Создание шаблона#
Для создания шаблона сервиса необходимо использовать команду:
oneflow-template create <файл_json>
где <файл_json>
— файл в формате JSON, в котором указаны значения параметров шаблона сервиса.
Примечание
Пример
Файл my_service.json
с параметрами шаблона сервиса:
{
"name": "my_service",
"deployment": "straight",
"ready_status_gate": true,
"roles": [
{
"name": "frontend",
"vm_template": 0
},
{
"name": "db_master",
"parents": [
"frontend"
],
"vm_template": 1
},
{
"name": "db_slave",
"parents": [
"frontend"
],
"cardinality": 3,
"vm_template": 2
},
{
"name": "worker",
"parents": [
"db_master",
"db_slave"
],
"cardinality": 10,
"vm_template": 3
}
]
}
Создание шаблона:
oneflow-template create my_service.json
Пример вывода после успешного выполнения команды:
ID: 0
Отображение доступных шаблонов и просмотр информации о шаблоне#
Для отображения шаблонов, доступных пользователю, необходимо использовать команду:
oneflow-template list
Пример вывода после выполнения команды:
ID USER GROUP NAME REGTIME
0 oneadmin brestadm my_service 05/22 13:38:5
Для просмотра полной информации о шаблоне необходимо использовать команду:
oneflow-template show <идентификатор_шаблона>
Пример вывода после выполнения команды oneflow-template show 0
:
SERVICE TEMPLATE 0 INFORMATION
ID : 0
NAME : my_service
USER : oneadmin
GROUP : brestadmins
REGISTRATION TIME : 05/22 13:38:59
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
TEMPLATE CONTENTS
{
"name": "my_service",
"deployment": "straight",
"ready_status_gate": true,
"roles": [
{
"name": "frontend",
"vm_template": 0,
"cardinality": 1
},
{
"name": "db_master",
"parents": [
"frontend"
],
"vm_template": 1,
"cardinality": 1
},
{
"name": "db_slave",
"parents": [
"frontend"
],
"cardinality": 3,
"vm_template": 2
},
{
"name": "worker",
"parents": [
"db_master",
"db_slave"
],
"cardinality": 10,
"vm_template": 3
}
],
"description": "",
"registration_time": 1684751939
}
Изменение параметров шаблона#
Для изменения параметров шаблона необходимо использовать команду:
onetemplate update <идентификатор_шаблона>
После ввода команды откроется текстовый редактор для редактирования шаблона сервиса.
Клонирование шаблона#
Клонировать существующий шаблон возможно с помощью команды:
onetemplate clone <идентификатор_шаблона> <наименование_нового_шабона>
При использовании аргумента --recursive
будут клонированы все шаблоны ВМ, перечисленные в шаблоне сервиса. При этом в новом шаблоне будут указаны клонированные шаблоны ВМ.
Удаление шаблона#
Для удаления шаблона необходимо выполнить команду:
oneflow-template delete <идентификатор_шаблона>
Также можно указать необходимость удаления шаблонов ВМ, перечисленных в шаблоне сервиса. Для этого в качестве аргументов команды необходимо указать следующие параметры:
--delete-vm-templates
— для удаления всех шаблонов ВМ, перечисленных в шаблоне сервиса;--delete-images
— для удаления всех шаблонов ВМ, перечисленных в шаблоне сервиса, а также удаления всех образов дисков, указанных в шаблонах этих ВМ.
Управление шаблонами сервиса в веб-интерфейсе ПВ#
Создание шаблона#
Для того чтобы создать шаблон ВМ, в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Шаблоны — Сервисы.
На открывшейся странице Шаблоны Сервисов нажать кнопку + и в открывшемся меню выбрать пункт Создать.
На открывшейся странице Создать шаблон службы задать значения параметров шаблона одним из способов:
во вкладке Мастер настройки установить необходимые значения параметров, заполнив поля формы. В том числе настроить роли виртуальных машин;
![]()
во вкладке Расширенный указать непосредственно значения параметров в формате JSON.
На странице Создать шаблон службы нажать кнопку Создать. После этого на открывшейся странице Шаблоны Сервисов отобразится созданный шаблон:

Отображение доступных шаблонов и просмотр информации о шаблоне#
Для отображения шаблонов, доступных пользователю, в веб-интерфейсе ПВ необходимо в меню слева выбрать пункт меню Шаблоны — Сервисы. На открывшейся странице Шаблоны Сервисов будет отображена таблица шаблонов.
Для просмотра информации о конкретном шаблоне необходимо на странице Шаблоны Сервисов выбрать необходимый шаблон. После этого откроется страница шаблона (вкладка Сведения):

Изменение параметров шаблона#
Чтобы изменить параметры шаблона, в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Шаблоны — Сервисы.
На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
На открывшейся странице Шаблон Сервиса нажать кнопку Обновить.
На открывшейся странице **Изменить шаблон служб**ы внести необходимые изменения и нажать кнопку Обновить.
Клонирование шаблона#
Для клонирования шаблона в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Шаблоны — Сервисы.
На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
На открывшейся странице Шаблон Сервиса нажать кнопку Клонировать.
На открывшейся странице Клонировать шаблон сервиса:
если необходимо клонировать все шаблоны ВМ, перечисленные в шаблоне сервиса, установить флаг Clone VM templates asssociated;
нажать кнопку Клонировать:
![]()
Удаление шаблона#
Для удаления шаблона в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Шаблоны — Сервисы.
На открывшейся странице Шаблоны Сервисов отметить необходимые шаблоны и нажать на кнопку Удалить:

В открывшемся окне Подтвердить нажать одну из кнопок:
Удалить — для удаления только шаблона сервиса;
Delete VM Templates — для удаления шаблона сервиса и всех шаблонов ВМ, перечисленных в шаблоне сервиса;
Delete Images and VM Templates — для удаления шаблона сервиса и всех шаблонов ВМ, перечисленных в шаблоне сервиса, а также удаления всех образов дисков, указанных в шаблонах этих ВМ:
![]()
Настройка автоматического удаления сервиса#
Экземпляры ВМ из состава сервиса могут быть удалены в соответствии с заданными правилами (политикой эластичности). В какой-то момент может оказаться, что в ПВ не запущено ни одной ВМ из состава сервиса, но сервис будет продолжать функционировать и потреблять вычислительные ресурсы ПВ. Чтобы избежать этого, можно настроить автоматическое удаление сервиса.
В интерфейсе командной строки#
Чтобы настроить автоматическое удаление сервиса, необходимо в шаблон сервиса добавить следующий параметр:
"automatic_deletion": true
В веб-интерфейсе ПВ#
Чтобы настроить автоматическое удаление сервиса, в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Шаблоны — Сервисы.
На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
На открывшейся странице Шаблон Сервиса нажать кнопку Обновить.
На открывшейся странице Изменить шаблон службы во вкладке Мастер настройки в секции Расширенные параметры сервиса установить флаг Automatic deletion of service when all VMs terminated:

На странице Изменить шаблон службы нажать кнопку Обновить.