2025-02-04 15:48:36 -08:00

92 lines
1.7 KiB
HCL

locals {
dns_server = {
name = "dns-server"
}
}
resource "proxmox_virtual_environment_vm" "dns_server" {
name = local.dns_server.name
description = "Managed by Terraform"
tags = ["terraform", "ubuntu", "dns-server"]
node_name = "pve"
vm_id = var.vm_id
pool_id = var.pool_id
cpu {
cores = 1
type = "host"
}
memory {
dedicated = 512
floating = 512
}
agent {
# read 'Qemu guest agent' section, change to true only when ready
enabled = true
}
# This should be one of the first nodes to start up to provide DNS globally
startup {
order = "0"
up_delay = "60"
down_delay = "60"
}
disk {
datastore_id = var.proxmox_vm_storage
file_id = var.cloud_image_id
interface = "virtio0"
iothread = true
discard = "on"
size = 16
file_format = "qcow2"
}
initialization {
ip_config {
ipv4 {
address = var.ipv4_address
gateway = var.gateway
}
}
datastore_id = var.proxmox_image_storage
user_data_file_id = proxmox_virtual_environment_file.dns_server.id
}
network_device {
bridge = "vmbr0"
}
operating_system {
type = "l26"
}
lifecycle {
}
}
resource "proxmox_virtual_environment_file" "dns_server" {
content_type = "snippets"
datastore_id = var.proxmox_image_storage
node_name = "pve"
source_raw {
data = <<EOF
${var.common_cloud_init}
hostname: ${local.dns_server.name}
EOF
file_name = "${local.dns_server.name}.cloud-config.yaml"
}
}
resource "ansible_host" "dns_server" {
# Use mDNS rather than IP
name = "${local.dns_server.name}.local"
groups = ["core", "dns_server"]
}