8.6. Пример файла конфигурации
# Указываем, что требуется провайдер oblakoteka из собственного реестра
terraform {
required_providers {
oblakoteka = {
source = "tf.oblakoteka.ru/oblakoteka/oblakoteka"
}
}
}
# Конфигурация провайдера oblakoteka: авторизация через ключ
provider "oblakoteka" {
key_file = "oblakoteka_key.json"
}
# Информация о текущем пользователе
data "oblakoteka_whoami" "whoami" {}
# Заказ внешнего IP-адреса #1 в указанном регионе
resource "oblakoteka_kvm_extip" "ip1" {
region = "ru_msk"
# subnet = ""
in_test = true
}
# Заказ внешнего IP-адреса #2 в том же регионе
resource "oblakoteka_kvm_extip" "ip2" {
region = "ru_msk"
# subnet = ""
in_test = true
}
# Создание виртуальной сети vnet1 с NAT через внешний IP ip1
resource "oblakoteka_kvm_vnet" "vnet1" {
region = "ru_msk"
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 = oblakoteka_kvm_extip.ip1.id
}
}
# Создание второй виртуальной сети vnet2 без NAT
resource "oblakoteka_kvm_vnet" "vnet2" {
region = "ru_msk"
name = "tf_vnet2"
subnet = {
subnet_cidr = "192.168.30.0/24"
}
}
# Создание виртуальной машины vm1 с подключением к внешнему IP и двум vnet
resource "oblakoteka_kvm_instance" "vm1" {
region = "ru_msk"
cod = "reconn_slava1" # код ЦОД
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 = 20
description = "System"
bootable = true # загрузочный диск
},
"disk1" = {
name = "disk1"
type = "standard" # тип диска: standard
size = 30
description = "Data1"
bootable = false
},
"disk2" = {
name = "disk2"
type = "archive" # тип диска: archive
size = 40
description = "Data2"
bootable = false
},
}
# Сетевые подключения
connections = {
"net0" = {
extip_id = oblakoteka_kvm_extip.ip2.id # привязка внешнего IP ip2
},
"net1" = {
vnet_id = oblakoteka_kvm_vnet.vnet1.id # подключение к vnet1
},
"net2" = {
vnet_id = oblakoteka_kvm_vnet.vnet2.id # подключение к vnet2
}
}
}
# Создание второй виртуальной машины vm2 с увеличенными ресурсами
resource "oblakoteka_kvm_instance" "vm2" {
region = "ru_msk"
cod = "reconn_slava1"
name = "tf_vm2"
description = "vm2 from tf"
vm_type = "high_performance_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 "whoami_out" {
# value = data.oblakoteka_whoami.whoami
# }
# output "ip1_out" {
# value = oblakoteka_kvm_extip.ip1
# }
# output "vnet1_out" {
# value = oblakoteka_kvm_vnet.vnet1
# }
# output "vm1_out" {
# value = oblakoteka_kvm_instance.vm1
# }
|
ПОЛЕЗНЫЕ ССЫЛКИ
