- Add sless.tf: three sless_job resources with depends_on chain
- vm-install-packages: jq, python3-pip, htop, unzip
- vm-install-nginx: nginx 1.18 (HTTP 200 verified)
- vm-install-docker: Docker CE 29.3.1 + Compose v5.1.1
- Add functions/install-{packages,nginx,docker}/handler.py
- _wait_apt_lock: cloud-init status --wait + systemctl mask
fixes Ubuntu 22.04 first-boot apt lock (unattended-upgrades)
- DPkg::Lock::Timeout=600 on all apt-get calls
- Add variables.tf (install_run_id, vm_public_key, vm_private_key)
- Add outputs.tf (install_*_result)
- Bump nubes provider 5.0.49 -> 5.0.51
- doc/progress.md: document step 6 with bug analysis
38 lines
1.5 KiB
Terraform
38 lines
1.5 KiB
Terraform
// 2026-03-25 — vm.tf: виртуальная машина (nubes_vc_vm_v3) внутри vApp.
|
|
// Зависит от nubes_vapp.vapp — создаётся после vApp.
|
|
// image_vm, vapp_uid, user_public_key не изменяются после создания.
|
|
|
|
resource "nubes_vc_vm_v3" "vm" {
|
|
resource_name = "vm-sless-1"
|
|
vm_name = "web02" # Имя ВМ в Nubes vCD. Не изменяется после создания.
|
|
# Определяет имя NSX-T IP Set: {vapp_name}-{vm_name}
|
|
|
|
vapp_uid = nubes_vapp.vapp.id # ссылка на vApp. Не изменяется после создания.
|
|
image_vm = "Ubuntu_22-20G" # Не изменяется после создания.
|
|
# image_vm = "Ubuntu 22.04 LTS" # Не изменяется после создания.
|
|
ip_space_name = "internet-ipv4-v1"
|
|
|
|
user_login = "ubuntu"
|
|
user_public_key = var.vm_public_key # задаётся в terraform.tfvars
|
|
|
|
vm_cpu = 2
|
|
vm_ram = 2 # GB
|
|
vm_disk = 20 # GB
|
|
|
|
adopt_existing_on_create = true
|
|
operation_timeout = "15m"
|
|
|
|
# delete без предварительного suspend завершается ошибкой (аналогично vApp).
|
|
suspend_on_destroy = true
|
|
}
|
|
|
|
output "vm_id" {
|
|
value = nubes_vc_vm_v3.vm.id
|
|
description = "ID созданной ВМ"
|
|
}
|
|
|
|
output "vm_state" {
|
|
value = nubes_vc_vm_v3.vm.state_out_flat
|
|
description = "Плоский state ВМ — IP-адреса, статус и т.д."
|
|
}
|