sless-primer/VM/README.md

94 lines
2.6 KiB
Markdown
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.

# Пример: Виртуальная машина (vApp + VM) в Nubes vDC
Создаёт:
- **vApp** — виртуальный каталог (контейнер для ВМ в VMware vDC)
- **ВМ** — Ubuntu 22.04, 2 CPU / 2 GB RAM / 20 GB disk
---
## Что нужно сделать перед запуском
### 1. Сгенерировать SSH-ключ
Публичный ключ прописывается в ВМ при создании — это единственный способ зайти по SSH.
Приватный ключ нужен хранить у себя.
```bash
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` и заменить значения:
```hcl
# Ваш API-токен из панели Nubes
api_token = "ВСТАВИТЬ_ТОКЕН"
# Публичный ключ из шага 1
vm_public_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."
```
> **Токен** — берётся в панели Nubes: профиль → API-токены.
> **Ключ** — содержимое файла `~/.ssh/sless-demo-vm.pub` (публичный, не приватный!).
---
## Запуск
```bash
cd examples/VM
terraform init
terraform apply
```
После `apply` в выводе будет:
```
Outputs:
vm_id = "..."
vm_state = {
"externalIp" = "1.2.3.4"
...
}
vapp_id = "..."
```
---
## Подключение по SSH
```bash
ssh -i ~/.ssh/sless-demo-vm ubuntu@<externalIp из outputs>
```
Логин — `ubuntu` (задан в `vm.tf`).
---
## Удаление
```bash
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` | **Не изменяется после создания** |