- 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
43 lines
1.4 KiB
Terraform
43 lines
1.4 KiB
Terraform
// 2026-03-25 — main.tf для примера с vApp + ВМ (Виртуальный датацентр Nubes).
|
|
// Провайдер nubes. Sless-провайдер не нужен — пример чисто инфраструктурный.
|
|
|
|
terraform {
|
|
required_providers {
|
|
nubes = {
|
|
source = "terra.k8c.ru/nubes/nubes"
|
|
version = "5.0.51"
|
|
}
|
|
sless = {
|
|
source = "terra.k8c.ru/naeel/sless"
|
|
version = "~> 0.1"
|
|
}
|
|
}
|
|
}
|
|
|
|
# ------------------------------------------------------------------
|
|
# Переменные
|
|
# ------------------------------------------------------------------
|
|
|
|
variable "vm_public_key" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Публичный SSH-ключ для ВМ. Приватный ключ: ~/terra/sless/examples/VM/vm_key"
|
|
}
|
|
|
|
variable "api_token" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Nubes API token"
|
|
}
|
|
|
|
# ------------------------------------------------------------------
|
|
# Провайдер
|
|
# ------------------------------------------------------------------
|
|
|
|
# API Dashboard (для Terraform-провайдеров): https://deck-api-test.ngcloud.ru/api/v1/index.cfm
|
|
# UI облака (только браузер): https://deck-test.ngcloud.ru/
|
|
provider "nubes" {
|
|
api_token = var.api_token
|
|
api_endpoint = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm"
|
|
}
|