117 lines
2.9 KiB
Org Mode
117 lines
2.9 KiB
Org Mode
* 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)
|
|
#+begin_src terraform :tangle /home/shawnb/Development/falcon_nest/terraform/nixos_template_provider.tf
|
|
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"
|
|
}
|
|
#+end_src
|
|
|
|
#+begin_src terraform :tangle /home/shawnb/Development/terraform/nixos_template.tf
|
|
# 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"
|
|
}
|
|
|
|
}
|
|
#+end_src
|
|
** NixOS LXC Template (from Telmate's Proxmox Terraform guide)
|
|
#+begin_src terraform :tangle /home/shawnb/Development/falcon_nest/terraform/nixos_lxc_template.tf
|
|
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"
|
|
}
|
|
}
|
|
#+end_src
|
|
|