doc: добавление документации по созданию вм через tf
This commit is contained in:
@@ -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
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user