doc: добавление документации по созданию вм через tf
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# Развёртывание ВМ в VMware Cloud Director через tf
|
||||
|
||||
Используется **OpenTofu** (`tofu`). Конфигурация создаёт виртуальные машины в vCD: можно задать несколько ВМ, размеры CPU/RAM/дисков и сеть.
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
1. **Установите OpenTofu** ([opentofu.org](https://opentofu.org)).
|
||||
|
||||
2. **Задайте переменные окружения** (доступ к vCD):
|
||||
```bash
|
||||
export TF_VAR_vmware_username="ваш_пользователь_vCD"
|
||||
export TF_VAR_vmware_password="ваш_пароль_vCD"
|
||||
```
|
||||
Пароль администратора ВМ можно не задавать — тогда он сгенерируется автоматически (см. `tools.tf`). Чтобы задать свой: `export TF_VAR_admin_password="ваш_пароль"`.
|
||||
|
||||
3. **Отредактируйте `terraform.tfvars`** — укажите нужный vDC, имя vApp, параметры ВМ (см. раздел «Конфигурация» ниже).
|
||||
|
||||
4. **Разверните инфраструктуру:**
|
||||
```bash
|
||||
tofu init
|
||||
tofu plan
|
||||
tofu apply
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### Переменные окружения
|
||||
|
||||
Обязательные для доступа к vCD:
|
||||
|
||||
- `TF_VAR_vmware_username` — пользователь VMware Cloud Director
|
||||
- `TF_VAR_vmware_password` — пароль VMware Cloud Director
|
||||
|
||||
Опционально: `TF_VAR_admin_password` — пароль администратора на ВМ (если не задан, генерируется автоматически).
|
||||
|
||||
```
|
||||
vcds = {
|
||||
"vdcconfiguration1" = {
|
||||
url = "https://ngcloud.ru/api"
|
||||
org = "dev"
|
||||
vdc = "dev"
|
||||
network_routed = "dev-mgmt-network"
|
||||
servers = {
|
||||
"vappname01" = {
|
||||
"vmname01" = {
|
||||
cpu = "4"
|
||||
memory = "4096"
|
||||
osDisk = "16384"
|
||||
dataDisk = {
|
||||
"1" = "30720"
|
||||
"2" = "15360"
|
||||
}
|
||||
network = {
|
||||
mode = "auto"
|
||||
ip = ""
|
||||
}
|
||||
catalog_name = "dev"
|
||||
template_name = "RockyLinux_9-16G-customize"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
Переменная задаётся в `terraform.tfvars`; схема — в [var.tf](var.tf), использование — [provider.tf](provider.tf), [vapp.tf](vapp.tf), [vm.tf](vm.tf), [local.tf](local.tf).
|
||||
|
||||
*** Ключ vcds — произвольное имя контура (можно несколько vDC в одной конфигурации) ***
|
||||
```
|
||||
vcds = {
|
||||
"test" = {
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
*** Настройка vDC ***
|
||||
```
|
||||
url = URL API Cloud Director (https://<хост>/api)
|
||||
org = имя организации
|
||||
vdc = имя vDC
|
||||
network_routed = имя routed-сети, куда подключаются ВМ
|
||||
```
|
||||
|
||||
*** Настройка vApp (ключи внутри servers — имена vApp) ***
|
||||
```
|
||||
servers = {
|
||||
"testservers" = { ... } # первый vApp
|
||||
"testvapp2" = { ... } # второй vApp
|
||||
}
|
||||
```
|
||||
|
||||
*** Настройка сервера (параметры ВМ) ***
|
||||
```
|
||||
"testservers" = {
|
||||
"test01" = {
|
||||
cpu = кол-во ядер CPU
|
||||
memory = объём RAM (МБ)
|
||||
osDisk = размер системного диска (МБ)
|
||||
dataDisk = { # ключ — unit, значение — размер в МБ
|
||||
"1" = "30720"
|
||||
"2" = "15360"
|
||||
}
|
||||
network = { # mode "auto" (IP из пула) или "manual" (указать ip)
|
||||
mode = "auto"
|
||||
ip = ""
|
||||
}
|
||||
network = mode "auto" (IP из пула) или "manual" (указать ip)
|
||||
mode = "auto"
|
||||
ip = ""
|
||||
catalog_name = каталог с шаблоном
|
||||
template_name = имя шаблона образа
|
||||
# опционально (cloud-init):
|
||||
init_username = "deploy"
|
||||
ssh_authorized_keys = ["ssh-ed25519 AAAA..."]
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user