# 1. ПРОВАЙДЕРЫ
terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "0.89.1"
}
freeipa = {
source = "camptocamp/freeipa"
version = "1.0.0"
}
}
}
# 2. ПЕРЕМЕННЫЕ (значения берем из terraform.tfvars)
variable "pm_api_token" {}
variable "ipa_password" {}
# 3. НАСТРОЙКИ ПОДКЛЮЧЕНИЯ
provider "proxmox" {
endpoint = "https://<IP_PROXMOX>:8006/"
api_token = var.pm_api_token
insecure = true
}
provider "freeipa" {
host = "ipa.au-team.cloud"
username = "admin"
password = var.ipa_password
}
# 4. ОПИСАНИЕ ВИРТУАЛОК (Цикл на 5 машин)
resource "proxmox_virtual_machine" "k8s_srv" {
count = 5
name = "k8s-srv${count.index + 1}"
node_name = "pve" # Имя твоего узла в Proxmox
cpu {
cores = 2
}
memory {
dedicated = 2048
}
initialization {
user_account {
username = "altlinux"
password = "P@ssw0rd"
}
ip_config {
ipv4 {
# Здесь подставь начальный IP из твоей таблицы
address = "10.10.10.${101 + count.index}/24"
gateway = "10.10.10.1"
}
}
}
network_device {
bridge = "vmbr0"
}
disk {
datastore_id = "local-lvm"
file_id = "local:iso/alt-p11-cloud-template.img"
interface = "virtio0"
}
}
# 5. DNS ЗАПИСИ (A-типа)
resource "freeipa_dns_record" "k8s_dns_a" {
count = 5
zone = "au-team.cloud"
name = "k8s-srv${count.index + 1}"
records = ["10.10.10.${101 + count.index}"]
type = "A"
}