127 lines
2.6 KiB
Text
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"
|
|
}
|
|
}
|
|
|
|
|