Пример файла конфигурации
# Указываем, что требуется провайдер 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 = "uz_tas2"
# subnet = ""
in_test = true
}
# Заказ внешнего IP-адреса #2 в той же подсети
resource "cloupard_kvm_extip" "ip2" {
region = "uz_tas2"
# subnet = ""
in_test = true
}
# Создание виртуальной сети vnet1 с NAT через внешний IP ip1
resource "cloupard_kvm_vnet" "vnet1" {
region = "uz_tas2"
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 = "uz_tas2"
name = "tf_vnet2"
subnet = {
subnet_cidr = "192.168.20.0/24"
}
}
# Создание виртуальной машины vm1 с подключением к внешнему IP и двум vnet
resource "cloupard_kvm_instance" "vm1" {
region = "uz_tas2"
cod = "unicon" # код ЦОД
name = "tf_vm1"
description = "test vm from tf"
vm_type = "universal_lin" # тип ВМ (универсальный Linux)
os_template = "debian_12_minimal" # шаблон ОС (Debian 12)
os_admin_pass = "Qwer1234" # пароль администратора ОС
running = true # ВМ запускается сразу после создания
in_test = true # тестовый период: да
vcpu = 2 # количество vCPU
vram = 2 # объем RAM (ГБ)
# Диски ВМ
disks = {
"disk0" = {
name = "disk0"
type = "super" # тип диска: super
size = 30
description = "System"
bootable = true # загрузочный диск
},
"disk1" = {
name = "disk1"
type = "standard" # тип диска: standard
size = 40
description = "Data1"
bootable = false
},
"disk2" = {
name = "disk2"
type = "archive" # тип диска: archive
size = 45
description = "Data2"
bootable = false
}
}
# Сетевые подключения
connections = {
"net0" = {
extip_id = cloupard_kvm_extip.ip2.id # привязка внешнего IP ip2
},
"net1" = {
vnet_id = cloupard_kvm_vnet.vnet1.id # подключение к vnet1
},
"net2" = {
vnet_id = cloupard_kvm_vnet.vnet2.id # подключение к vnet2
}
}
}
# Создание второй виртуальной машины vm2 с увеличенными ресурсами
resource "cloupard_kvm_instance" "vm2" {
region = "uz_tas2"
cod = "unicon" # код ЦОД
name = "tf_vm1"
description = "test vm from tf"
vm_type = "universal_lin" # тип ВМ (универсальный Linux)
os_template = "debian_12_minimal" # шаблон ОС (Debian 12)
os_admin_pass = "Qwer1234" # пароль администратора ОС
ssh_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJbOIrkRQapl6EGXleO0VUq0ZWZ65+YSwF6i/1TqYsIb infraaccess" # добавление SSH ключа
running = true # ВМ запускается сразу после создания
in_test = true # тестовый период: да
vcpu = 8 # количество vCPU
vram = 16 # объем RAM (ГБ)
# Диски ВМ
disks = {
"disk0" = {
name = "disk0"
type = "super" # тип диска: super
size = 20
description = "System"
bootable = true # загрузочный диск
}
}
}
# Outputs для всех созданных ресурсов
#output "ip1_out" {
# value = cloupard_kvm_extip.ip1
#}
#output "ip2_out" {
# value = cloupard_kvm_extip.ip2
#}
#output "vnet1_out" {
# value = cloupard_kvm_vnet.vnet1
#}
#output "vnet2_out" {
# value = cloupard_kvm_vnet.vnet2
#}
#output "vm1_out" {
# value = cloupard_kvm_instance.vm1
#}
#output "vm2_out" {
# value = cloupard_kvm_instance.vm2
#}
|