×

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

 
# Указываем, что требуется провайдер cloupard из собственного реестра
terraform {
  required_providers {
    cloupard = {
      source = "tf.cloupard.kz/cloupardkz/cloupardkz"
    }
  }
}
 
# Конфигурация провайдера cloupard: авторизация через ключ
provider "cloupard" {
  key_file = "key.json"
}
 
# Заказ внешнего IP-адреса #1 в указанном регионе и подсети
resource "cloupard_kvm_extip" "ip1" {
  region = "kz_ala2"
# subnet = ""
  in_test = true
}
 
# Заказ внешнего IP-адреса #2 в той же подсети
resource "cloupard_kvm_extip" "ip2" {
  region = "kz_ala2"
#  subnet = ""
  in_test = true
}
 
# Создание виртуальной сети vnet1 с NAT через внешний IP ip1
resource "cloupard_kvm_vnet" "vnet1" {
  region = "kz_ala2"
  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 = "kz_ala2"
  name = "tf_vnet2"
 subnet = {
    subnet_cidr = "192.168.20.0/24"
  }
}
 
# Создание виртуальной машины vm1 с подключением к внешнему IP и двум vnet
resource "cloupard_kvm_instance" "vm1" {
  region = "kz_ala2"
  cod = "almaty2"
  name = "tf_vm1"
  description = "test vm from tf"
  vm_type = "universal_lin"
  os_template = "debian_12_minimal"
  os_admin_pass = "Qwer1234"
  running = true
  in_test = true
  vcpu = 2
  vram = 2
 
  disks = {
    "disk0" = {
      name = "disk0"
      type = "super"
      size = 30
      description = "System"
      bootable = true
    },
    "disk1" = {
      name = "disk1"
      type = "standard"
      size = 40
      description = "Data1"
      bootable = false
    },
    "disk2" = {
      name = "disk2"
      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
    }
  }
}
 
# Создание второй виртуальной машины vm2 с увеличенными ресурсами
resource "cloupard_kvm_instance" "vm2" {
  region = "kz_ala2"
  cod = "almaty2"
  name = "tf_vm1"
  description = "test vm from tf"
  vm_type = "universal_lin"
  os_template = "debian_12_minimal"
  os_admin_pass = "Qwer1234"
  ssh_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJbOIrkRQapl6EGXleO0VUq0ZWZ65+YSwF6i/1TqYsIb infraaccess"
  running = true
  in_test = true
  vcpu = 8
  vram = 16
  disks = {
    "disk0" = {
      name = "disk0"
      type = "super"
      size = 20
      description = "System"
      bootable = true
    }
  }
}