102 lines
2.9 KiB
HCL
102 lines
2.9 KiB
HCL
# Create a local copy of the file, to transfer to Proxmox
|
|
resource "local_file" "cloud_init_fed42_ipa" {
|
|
#content = data.template_file.cloud_init_deb10_vm-01.rendered
|
|
content = templatefile("${var.working_directory}/cloud-inits/cloud_init_fedora42_ipa.cloud_config.tftpl", { ssh_key = var.petar_ssh_public_key, hostname = var.hostname_ipa , domain = var.domain })
|
|
filename = "${path.module}/files/user_data_cloud_init_fedora42_ipa.cfg"
|
|
}
|
|
|
|
# Transfer the file to the Proxmox Host
|
|
resource "null_resource" "cloud_init_fed42_ipa" {
|
|
connection {
|
|
type = "ssh"
|
|
user = var.prov_user
|
|
private_key = var.petar_ssh_private_key
|
|
host = var.proxmox_host
|
|
}
|
|
|
|
provisioner "file" {
|
|
source = local_file.cloud_init_fed42_ipa.filename
|
|
destination = "/var/lib/vz/snippets/user_data_cloud_init_fedora42_ipa.yml"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
resource "proxmox_vm_qemu" "vm-freeipa" {
|
|
name = var.hostname_ipa
|
|
|
|
depends_on = [
|
|
null_resource.cloud_init_fed42_ipa
|
|
]
|
|
|
|
# Node name has to be the same name as within the cluster
|
|
# this might not include the FQDN
|
|
target_node = "neo"
|
|
|
|
# The template name to clone this vm from
|
|
clone = "temp-fedora-38"
|
|
|
|
# Activate QEMU agent for this VM
|
|
agent = 1
|
|
|
|
#pool = linux
|
|
|
|
os_type = "cloud-init"
|
|
vmid = 1000
|
|
vm_state = "running"
|
|
|
|
cpu {
|
|
cores = 2
|
|
sockets = 1
|
|
type = "host"
|
|
}
|
|
memory = 2048
|
|
scsihw = "virtio-scsi-pci"
|
|
|
|
# Setup the disk
|
|
disks {
|
|
scsi {
|
|
scsi0 {
|
|
# We have to specify the disk from our template, else Terraform will think it's not supposed to be there
|
|
disk {
|
|
storage = "local-lvm"
|
|
# The size of the disk should be at least as big as the disk in the template. If it's smaller, the disk will be recreated
|
|
size = "16G"
|
|
}
|
|
}
|
|
}
|
|
ide {
|
|
# Some images require a cloud-init disk on the IDE controller, others on the SCSI or SATA controller
|
|
ide1 {
|
|
cloudinit {
|
|
storage = "local-lvm"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Setup the network interface and assign a vlan tag: 256
|
|
|
|
network {
|
|
id = 0
|
|
model = "virtio"
|
|
bridge = "vmbr0"
|
|
macaddr = "bc:24:11:de:cb:30"
|
|
}
|
|
nameserver = ""
|
|
|
|
onboot = true
|
|
boot = "order=scsi0"
|
|
tags = "ldap,samba,kerberos,dns,pki"
|
|
|
|
# Setup the ip address using cloud-init.
|
|
# Keep in mind to use the CIDR notation for the ip.
|
|
#ipconfig0 = "ip=10.11.12.65/24,gw=10.11.12.254"
|
|
ipconfig0 = "ip6=auto"
|
|
ciuser = var.prov_user
|
|
#cicustom = "vendor=local:snippets/qemu-guest-agent.yml,user=local:snippets/cloud_init_fedora_vm_ipa.yml" # /var/lib/vz/snippets/qemu-guest-agent.yml
|
|
cicustom = "user=local:snippets/user_data_cloud_init_fedora42_ipa.yml"
|
|
ciupgrade = true
|
|
|
|
sshkeys = var.petar_ssh_public_key
|
|
}
|