doc: добавление документации по созданию вм через tf

This commit is contained in:
2026-02-03 14:13:51 +03:00
parent db37cf8832
commit 6a3fc83246
19 changed files with 864 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
resource "vcd_vapp_vm" "vm" {
for_each = local.servers
provider = vcd.al[each.value.vcd_key]
vapp_name = vcd_vapp.vapp[each.value.vcd_key].name
name = each.key
computer_name = each.key
catalog_name = each.value.config["catalog_name"]
template_name = each.value.config["template_name"]
memory = each.value.config["memory"]
cpus = each.value.config["cpu"]
network {
type = "org"
name = each.value.network_routed
ip_allocation_mode = lookup(each.value.config["network"], "mode", "auto") == "manual" ? "MANUAL" : "POOL"
is_primary = true
# Устанавливаем IP, только если режим "manual"
ip = lookup(each.value.config["network"], "mode", "auto") == "manual" ? lookup(each.value.config["network"], "ip", null) : null
}
override_template_disk {
bus_type = "paravirtual"
size_in_mb = each.value.config["osDisk"]
bus_number = 0
unit_number = 0
}
customization {
enabled = true
#force = var.forceRecustomization || !contains(var.servers, var.servers[count.index])
#force = var.forceRecustomization
force = false
allow_local_admin_password = true
auto_generate_password = false
admin_password = local.admin_password
}
set_extra_config {
key = "disk.EnableUUID"
value = "TRUE"
}
guest_properties = {
"user-data" = base64encode(templatefile("${path.module}/templates/cloudinit.yaml", {
hostname = each.key
username = each.value.config["init_username"]
ssh_authorized_keys = each.value.config["ssh_authorized_keys"]
}))
}
# Игноирование изменений дисков (PVC - Named Disks)
lifecycle {
ignore_changes = [
disk, # Игнорирует изменения всех дисков
]
}
depends_on = [
vcd_vapp_org_network.routed_network
]
}
resource "vcd_vm_internal_disk" "vmdisk" {
for_each = local.disks
provider = vcd.al[each.value.vcd_key]
vapp_name = vcd_vapp.vapp[each.value.vcd_key].name
vm_name = each.value.vm_name
bus_type = "paravirtual"
bus_number = 0
unit_number = each.value.unit_num
size_in_mb = each.value.disk_size
allow_vm_reboot = true
depends_on = [
vcd_vapp_vm.vm
]
}