Files
polygon/site/services/prod/28_vc_vm_v3.yaml
T

299 lines
12 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: vc_vm_v3
service_id: 28
service_display_name: Виртуальная машина
service_short_name: vc_vm_v3
service_man: '# Документация по разворачиванию ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные
операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>##
Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное
имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно
быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ
операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию:
myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\ложь,
определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON.
Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример:
50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix). <br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации
системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для
серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для
облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для
стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> -
name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> -
nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете
появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>###
Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется
использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>##
Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>-
Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>-
Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 132
operation: create
kind: instance
action: create
- svcOperationId: 133
operation: delete
kind: instance
action: delete
- svcOperationId: 159
operation: modify
kind: instance
action: modify
- svcOperationId: 286
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 164
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 135
operation: resume
kind: instance
action: resume
- svcOperationId: 134
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 407
svcOperationCfsParam: vappUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 408
svcOperationCfsParam: vmName
dataType: string
isRequired: true
defaultValue: web01
isModifiable: false
- svcOperationCfsParamId: 409
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 410
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 411
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 412
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 413
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 414
svcOperationCfsParam: imageVm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 415
svcOperationCfsParam: cloudInit
dataType: yaml
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 416
svcOperationCfsParam: userLogin
dataType: string
isRequired: true
defaultValue: myuser
isModifiable: false
- svcOperationCfsParamId: 417
svcOperationCfsParam: userPublicKey
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 448
svcOperationCfsParam: accessPortList
dataType: string
isRequired: true
defaultValue: '["22"]'
isModifiable: true
- svcOperationCfsParamId: 493
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 494
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 495
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 496
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 497
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 498
svcOperationCfsParam: accessPortList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 509
svcOperationCfsParam: vmName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 510
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 511
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 512
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 513
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 514
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 515
svcOperationCfsParam: imageVm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- RockyLinux_9-16G-cloudinit
- Ubuntu_22-20G
- Debian_13-20G
- svcOperationCfsParamId: 516
svcOperationCfsParam: userLogin
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 517
svcOperationCfsParam: userPublicKey
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 518
svcOperationCfsParam: cloudInit
dataType: yaml
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 520
svcOperationCfsParam: accessPortList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
132:
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 448
133: []
159:
- 493
- 494
- 495
- 496
- 497
- 498
286: []
164:
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 520
135: []
134: []
stateParams:
vappUid: ''
vmName: web01
vmCpu: '1'
vmRam: '1'
vmDisk: ''
ipSpaceName: ''
accessIpList: ''
imageVm: ''
cloudInit: ''
userLogin: myuser
userPublicKey: ''
accessPortList: '["22"]'