proxmox-vms/main.tofu

127 lines
2.6 KiB
Text

terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "0.81.0"
}
}
}
provider "proxmox" {
# Configuration options
endpoint = var.virtual_environment_endpoint
api_token = var.virtual_environment_token
ssh {
agent = false
username = "root"
private_key = file("~/.ssh/id_ed25519")
}
}
resource "proxmox_virtual_environment_file" "cloud_config" {
content_type = "snippets"
datastore_id = "local"
node_name = "homelab-one"
source_raw {
data = <<-EOF
#cloud-config
package_update: true
package_upgrade: true
package_reboot_if_required: true
packages:
- firewalld
- dnf-automatic
runcmd:
- sed -i 's/btrfs defaults/btrfs defaults,nodatacow/g' /etc/fstab
- chattr -R +C /
- systemctl enable firewalld
- reboot
allow_public_ssh_keys: true
disable_root: false
users:
- name: root
lock_passwd: false
hashed_passwd: $6$rounds=4096$pKmTfNGyUfTZamCD$IQV05ysDl2fRReYawsKq6CH/FKH.eOtERtjZ7AQ/XG0ivh/rstZidIqIRRXuTEgXOFNR1Mq8pMCcoFSmABqPd0
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIArO9Yty0QuX7jZhDeL6MrZwH+6dbbcidYWWo0qawivb user@homelab-mgmt
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIArO9Yty0QuX7jZhDeL6MrZwH+6dbbcidYWWo0qawivb user@homelab-mgmt
EOF
file_name = "user-data-cloud-config.yaml"
}
}
resource "proxmox_virtual_environment_vm" "jellyfin" {
node_name = "homelab-one"
name = "jellyfin"
acpi = true
bios = "ovmf"
boot_order = ["scsi0"]
machine = "q35"
stop_on_destroy = true
scsi_hardware = "virtio-scsi-single"
operating_system {
type = "l26"
}
agent {
enabled = true
trim = true
}
efi_disk {
datastore_id = "spinny-zfs"
file_format = "raw"
type = "4m"
}
serial_device {}
vga {
type = "virtio"
}
tpm_state {
datastore_id = "spinny-zfs"
version = "v2.0"
}
cpu {
cores = 4
sockets = 1
type = "host"
}
memory {
dedicated = 4096
floating = 2048
}
initialization {
datastore_id = "spinny-zfs"
user_data_file_id = proxmox_virtual_environment_file.cloud_config.id
}
# boot disk
disk {
cache = "none"
datastore_id = "spinny-zfs"
discard = "on"
file_id = "local:iso/Fedora-Cloud-Base-UEFI-UKI-42-1.1.x86_64.img"
interface = "scsi0"
iothread = true
replicate = false
size = 32
}
network_device {
bridge = "vmbr2"
vlan_id = 100
enabled = true
firewall = true
mac_address = "BC:24:11:21:6F:61"
}
}