sless-primer/VM
2026-03-30 07:18:48 +03:00
..
functions fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
.vm_stress_test.sh.OLD fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
main.tf fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
outputs.tf fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
README.md fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
sless.tf fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
vapp.tf fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
variables.tf fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
vm_key fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
vm_key.pub fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
vm_stress_test.sh fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
VM_TEST_README.md fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00
vm.tf fix: sync vm stress test docs and ensure read-only behavior 2026-03-30 07:18:48 +03:00

Пример: Виртуальная машина (vApp + VM) в Nubes vDC

Создаёт:

  • vApp — виртуальный каталог (контейнер для ВМ в VMware vDC)
  • ВМ — Ubuntu 22.04, 2 CPU / 2 GB RAM / 20 GB disk

Что нужно сделать перед запуском

1. Сгенерировать SSH-ключ

Публичный ключ прописывается в ВМ при создании — это единственный способ зайти по SSH. Приватный ключ нужен хранить у себя.

ssh-keygen -t ed25519 -f ~/.ssh/sless-demo-vm -N "" -C "sless-demo-vm"

Публичный ключ (~/.ssh/sless-demo-vm.pub) — строка вида:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... sless-demo-vm

2. Заполнить terraform.tfvars

Открыть файл terraform.tfvars и заменить значения:

# Ваш API-токен из панели Nubes
api_token = "ВСТАВИТЬ_ТОКЕН"

# Публичный ключ из шага 1
vm_public_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."

Токен — берётся в панели Nubes: профиль → API-токены.
Ключ — содержимое файла ~/.ssh/sless-demo-vm.pub (публичный, не приватный!).


Запуск

cd examples/VM

terraform init
terraform apply

После apply в выводе будет:

Outputs:

vm_id    = "..."
vm_state = {
  "externalIp" = "1.2.3.4"
  ...
}
vapp_id  = "..."

Подключение по SSH

ssh -i ~/.ssh/sless-demo-vm ubuntu@<externalIp из outputs>

Логин — ubuntu (задан в vm.tf).


Удаление

terraform destroy

Порядок автоматический: сначала suspend → потом delete. Без suspend удаление упадёт с ошибкой — это поведение Nubes, параметр suspend_on_destroy = true в ресурсах решает это.


Что можно менять

Параметр Файл Примечание
vm_cpu, vm_ram, vm_disk vm.tf Можно менять и переприменять
resource_name, vapp_name vapp.tf Не изменяется после создания
image_vm, user_login, user_public_key vm.tf Не изменяется после создания
vdc_uid, nsxt_uid vapp.tf Не изменяется после создания