×

Пример файла конфигурации

 
# Указываем, что требуется провайдер cloupard из собственного реестра
terraform {
  required_providers {
    cloupard = {
      source = "tf.cloupard.uz/clouparduz/clouparduz"
    }
  }
}
 
# Конфигурация провайдера cloupard: авторизация через ключ
provider "cloupard" {
  key_file = "key.json"
}
 
# Заказ внешнего IP-адреса #1 в указанном регионе и подсети
resource "cloupard_kvm_extip" "ip1" {
  region = var.region_uz2
# subnet = ""
  in_test = true
}
 
# Заказ внешнего IP-адреса #2 в той же подсети
resource "cloupard_kvm_extip" "ip2" {
  region = var.region_uz2
#  subnet = ""
  in_test = true
}
 
# Создание виртуальной сети vnet1 с NAT через внешний IP ip1
resource "cloupard_kvm_vnet" "vnet1" {
  region = var.region_uz2
  name = "tf_vnet1"
  subnet = {
    subnet_cidr = "192.168.10.0/24"
    dns1 = "8.8.8.8"
    dns2 = "1.1.1.1"
  }
  outbound_nat_ip_address = {
    id = cloupard_kvm_extip.ip1.id
  }
}
 
# Создание второй виртуальной сети vnet2 без NAT
resource "cloupard_kvm_vnet" "vnet2" {
  region = var.region_uz2
  name = "tf_vnet2"
 subnet = {
    subnet_cidr = "192.168.20.0/24"
  }
}
 
# Создание виртуальной машины vm1 с подключением к внешнему IP и двум vnet
resource "cloupard_kvm_instance" "vm1" {
  region = var.region_uz2
  cod = var.cod_tashkent_2
  name = "tf_vm1"
  description = "test vm from tf"
  vm_type = var.vm_type_universal_lin_uz2
  os_template = var.os_debian_12_minimal_uz2
  os_admin_pass = "Qwer1234"
  running = true
  in_test = true
  vcpu = 2
  vram = 2
 
  disks = {
    "disk0" = {
      name = "disk0"
      type = var.disk_type_super
      size = 25
      description = "System"
      bootable = true
    },
    "disk1" = {
      name = "disk1"
      type = var.disk_type_standard
      size = 35
      description = "Data1"
      bootable = false
    },
    "disk2" = {
      name = "disk2"
      type = var.disk_type_archive
      size = 45
      description = "Data2"
      bootable = false
    }
  }
 
  connections = {
    "net0" = {
      extip_id = cloupard_kvm_extip.ip2.id
    },
    "net1" = {
      vnet_id = cloupard_kvm_vnet.vnet1.id
    },
    "net2" = {
      vnet_id = cloupard_kvm_vnet.vnet2.id
    }
  }
}
 
# Регионы
variable "region_uz" {
  default = "babca45c-bc43-4bce-baea-2fee0e73c135"
}
 
variable "region_uz2" {
  default = "67e0588e-61a2-4188-8f13-b262579aff69"
}
 
# ЦОДы
variable "cod_tashkent" {
  default = 1
}
 
variable "cod_tashkent_2" {
  default = 5
}
 
# Типы ВМ
variable "vm_type_basic_lin_uz" {
  default = "6c9c44de-1f0d-48cc-a9fd-b285f236076b"
}
 
variable "vm_type_basic_lin_uz2" {
  default = "214f9269-9c77-4742-a19e-68424f4e15b5"
}
 
variable "vm_type_universal_lin_uz" {
  default = "f578f3c5-176a-4bc5-b011-a5bdeefce6c0"
}
 
variable "vm_type_universal_lin_uz2" {
  default = "ee2d8380-186a-4257-8c38-060fceee5ae2"
}
 
variable "vm_type_productive_lin_uz" {
  default = "01fca0c6-5750-4379-b2f0-1f623dc73fd4"
}
 
variable "vm_type_productive_lin_uz2" {
  default = "14dfc6c6-8285-4cd8-999b-5825c2594ada"
}
 
variable "vm_type_basic_win_uz" {
  default = "18d30c40-2752-42ef-8154-ea06eeb93c1a"
}
 
variable "vm_type_basic_win_uz2" {
  default = "fe85a4ee-3b56-4be8-8c8b-9bbf80dab46c"
}
 
variable "vm_type_universal_win_uz" {
  default = "6b866676-d1e6-4775-b969-5c4d26ff8c98"
}
 
variable "vm_type_universal_win_uz2" {
  default = "e8057dac-4307-4f09-a3d3-c33012b083c4"
}
 
variable "vm_type_productive_win_uz" {
  default = "46a551cf-7ddf-494f-95ed-1e3ab7e6283e"
}
 
variable "vm_type_productive_win_uz2" {
  default = "f9c0e1b0-bca4-444d-839a-d079d6a90829"
}
 
variable "vm_type_mikrotik_uz2" {
  default = "10303369-e74c-4658-a37e-af3126c9242a"
}
 
# Типы дисков
variable "disk_type_super" {
  default = "6348578a-a753-44c5-b350-cd0df8aca3ad"
}
 
variable "disk_type_super_local" {
  default = "0c885848-c22b-4b70-8da9-ac6d85aa8d02"
}
 
variable "disk_type_standard" {
  default = "94de6c3d-f6d7-4bd9-b18a-f0c134ca922a"
}
 
variable "disk_type_standard_local" {
  default = "f15237aa-c1db-4c11-911e-5c4ea4488642"
}
 
variable "disk_type_archive" {
  default = "f577ccd8-be8d-44a4-9c9a-91a9470c9106"
}
 
variable "disk_type_archive_local" {
  default = "dfbeea33-10b8-48f4-9a04-4690d8ecbaf6"
}
 
# Операционные системы (Шаблоны)
variable "os_debian_12_minimal" {
  default = "7464e643-0a60-4ba2-bdb7-75a19bb7bfc7"
}
 
variable "os_debian_12_minimal_uz2" {
  default = "4e64f00e-ee1d-4eb4-9f8e-4ff70b628d0c"
}
 
variable "os_ubuntu_2404_lts_minimal" {
  default = "5d2141c6-a19a-4909-986b-24155253b25c"
}
 
variable "os_ubuntu_2404_lts_minimal_uz2" {
  default = "ca4392a0-1730-4676-bfbe-be6aedca6539"
}
 
variable "os_linux_custom" {
  default = "06160c7a-111e-4efa-8c5c-c3d61fd7f36c"
}
 
variable "os_linux_custom_uz2" {
  default = "5a8c5ada-7bf3-4269-9ba9-583a68a059f7"
}
 
variable "os_windows_2022_rus_gui" {
  default = "d0ff9228-109b-40d8-a0be-b30c4c1bfff1"
}
 
variable "os_windows_2022_rus_gui_uz2" {
  default = "a7c86af3-95fd-4b05-848d-550bfcfbbe59"
}
 
variable "os_windows_2022_en_gui" {
  default = "64db00d8-8792-4c0b-b531-e35389b2fb00"
}
 
variable "os_windows_2022_en_gui_uz2" {
  default = "72e5f047-9182-422c-a9b2-9a88d1746f78"
}
 
variable "os_windows_2019_rus_gui" {
  default = "51499caf-fca0-4718-81d0-0d00a8c0cf09"
}
 
variable "os_windows_2019_rus_gui_uz2" {
  default = "29e64920-0028-42b9-a338-ad6d9a83ad73"
}
 
variable "os_windows_2019_en_gui" {
  default = "fe64eed6-3c72-43c2-b050-bb8f09491efb"
}
 
variable "os_windows_2019_en_gui_uz2" {
  default = "e261c1ed-caab-4ceb-81c4-6ca16c948080"
}
 
variable "os_windows_2016_en_gui" {
  default = "ed75a21c-05df-4d8f-b3c7-d2d29855305a"
}
 
variable "os_windows_2016_en_gui_uz2" {
  default = "d64c148c-27a6-4029-b966-6329b09464e1"
}
 
variable "os_windows_2022_custom_scsi" {
  default = "84a17a3f-2dc2-43b1-8c27-5fb6337c4f76"
}
 
variable "os_windows_2022_custom_scsi_uz2" {
  default = "7ea6dcbc-e5c2-4ac2-bcdf-69c94d20b340"
}
 
variable "os_windows_2022_custom_sata" {
  default = "228a22ef-f9e6-4bb4-ba7e-7866a823a816"
}
 
variable "os_windows_2022_custom_sata_uz2" {
  default = "eed1be83-70dd-4511-8cbd-014612ffb338"
}
 
variable "os_windows_2019_custom_scsi" {
  default = "2b9b2fd5-03d7-4ba5-8fbd-7f2f1ef8649e"
}
 
variable "os_windows_2019_custom_scsi_uz2" {
  default = "6276d2bc-0138-4317-a2a0-13e198fba0f3"
}
 
variable "os_windows_2019_custom_sata" {
  default = "98fb8156-ec72-4218-b586-3314a9f9fbbb"
}
 
variable "os_windows_2019_custom_sata_uz2" {
  default = "bf1096ce-dda3-40d5-b7fe-ca9b2e2f51ea"
}
 
variable "os_mikrotik_chr_7" {
  default = "16296da8-1fe8-4b98-b3c5-6c2807e28f0a"
}
 
variable "os_mikrotik_chr_7_uz2" {
  default = "bbbdb3b8-b669-4c31-8805-bfead09b8223"
}
 
variable "os_mikrotik_chr_6" {
  default = "63b5130c-8a0f-4869-b717-1a093728502a"
}
 
variable "os_mikrotik_chr_6_uz2" {
  default = "2c0196cb-f049-4b08-b0a9-07a2e4ae96f6"
}
 
variable "os_custom_other_scsi" {
  default = "58556421-6b6f-4716-9346-f1ae80ba4f06"
}
 
variable "os_custom_other_scsi_uz2" {
  default = "d1087c32-4e0a-4af3-a592-a5323250dab1"
}
 
variable "os_custom_other_sata" {
  default = "97971468-9a4f-4090-8f44-2116a541f1ee"
}
 
variable "os_custom_other_sata_uz2" {
  default = "517bf5b2-2dd7-4212-9eb1-8b966b811ee4"
}
 
output "vm1_out" {
  value = cloupard_kvm_instance.vm1
}