2.6 KiB
2.6 KiB
Пример: Виртуальная машина (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 |
Не изменяется после создания |