2.9 KiB
2.9 KiB
Terraform Plan for Crows Nest ISO
Prompt
Please create a Terraform plan that will allow me to provision a new virtual machine on Proxmox using the telmate Proxmox provider. This virtual machine should have 4 CPU cores, 8GB of RAM, and 64 GB of disk space. Please give it an ID of 105, set full_clone to be true, and set the node's name to roxie. Also, turn on automatic reboot of the virtual machine. Leave the following information blank so that I can fill it in later: the URL of the Proxmox instance, the user name, and the token from Proxmox. Call the VM "crows-nest"
NixOS Virtual Machie Template (from Claude Sonnet 4)
terraform {
required_providers {
proxmox = {
source = "telmate/proxmox"
version = "3.0.2-rc10"
}
}
}
provider "proxmox" {
pm_api_url = "https://pve.home.onionpatch.cloud:8006/api2/json"
pm_user = "terraform-prov@pve"
pm_password = "8pKkz^@C%gOYbegcGQ"
}
# General
resource "proxmox_vm_qemu" "nixos-template" {
name = "nixos-template"
desc = "NixOS Template"
agent = 1
target_node = "roxie"
vmid = 0
vm_state = "stopped"
onboot = false
automatic_reboot = false
# Bios and OS
bios = "seabios"
qemu_os = "l26"
tags = "nixos,server,linux"
hotplug = 0
# CPU and Memory
cpu {
cores = 1
sockets = 1
type = "host"
}
memory = 2048
balloon = 2048
# Disks
scsihw = "virtio-scsi-single"
disks {
ide {
ide2 {
cdrom {
iso = "local:iso/nixos-minimal-26.05.1947.a0374025a863-x86_64-linux.iso"
}
}
}
scsi {
scsi0 {
disk {
size = "40G"
iothread = true
replicate = false
storage = "local-lvm"
}
}
}
}
# Network
network {
id = 0
model = "virtio"
bridge = "vmbr0"
}
}
NixOS LXC Template (from Telmate's Proxmox Terraform guide)
resource "proxmox_lxc" "nixos-lxc-templ" {
target_node = "roxie"
hostname = "nixos-lxc-template"
ostemplate = "local:vztmpl/nixos-image-lxc-proxmox-26.11pre-git-x86_64-linux.tar.xz"
password = "XD8stvkUiF;"
description = "NixOS-based LXC"
unprivileged = true
full = true
cores = 1
memory = 2048
template = true
vmid = 901
ssh_public_keys = <<-EOT
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILgyiCfvu21kVTfRyKjzpH+93k7Jsf+EqLfN6NtolHnf tech@shilohsvillage.com
EOT
features {
nesting = true
}
// Terraform will crash without rootfs defined
rootfs {
storage = "local-lvm"
size = "40G"
}
network {
name = "eth0"
bridge = "vmbr0"
ip = "dhcp"
}
}