feat: initial commit

This commit is contained in:
nikola
2026-05-19 14:53:37 +02:00
commit f8eba4f09a
21 changed files with 1061 additions and 0 deletions
+218
View File
@@ -0,0 +1,218 @@
terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "0.68.0"
}
}
}
provider "proxmox" {
endpoint = "https://10.0.50.110:8006/"
insecure = true
api_token = trimspace(file("${path.module}/.secrets/api_token"))
}
variable "vm_gateway" {
type = string
description = "Default gateway for all virtual machines."
default = "10.1.50.1"
}
variable "vm_addresses" {
type = object({
alpha = string
bravo = string
charlie = string
delta = string
})
description = "CIDR formatted IPv4 addresses for each virtual machine (e.g. 10.1.50.130/24)."
}
resource "proxmox_virtual_environment_vm" "vm_alpha" {
name = "terraform-multi-vm-alpha"
node_name = "rbmk2"
clone {
vm_id = 169
full = true
datastore_id = "local-lvm"
}
cpu {
sockets = 1
cores = 2
}
memory {
dedicated = 4096
}
network_device {
model = "virtio"
bridge = "vmbr0"
}
initialization {
datastore_id = "local-lvm"
user_account {
username = "devops"
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFyVe1ZhUCVs9imt0UmcCIXRAHpoSKFQ7IH/ekEXohZG dzoni-wolkabout"
]
}
ip_config {
ipv4 {
address = var.vm_addresses.alpha
gateway = var.vm_gateway
}
}
}
agent {
enabled = true
}
}
resource "proxmox_virtual_environment_vm" "vm_bravo" {
name = "terraform-multi-vm-bravo"
node_name = "rbmk2"
clone {
vm_id = 169
full = true
datastore_id = "local-lvm"
}
cpu {
sockets = 1
cores = 2
}
memory {
dedicated = 4096
}
network_device {
model = "virtio"
bridge = "vmbr0"
}
initialization {
datastore_id = "local-lvm"
user_account {
username = "devops"
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFyVe1ZhUCVs9imt0UmcCIXRAHpoSKFQ7IH/ekEXohZG dzoni-wolkabout"
]
}
ip_config {
ipv4 {
address = var.vm_addresses.bravo
gateway = var.vm_gateway
}
}
}
agent {
enabled = true
}
}
resource "proxmox_virtual_environment_vm" "vm_charlie" {
name = "terraform-multi-vm-charlie"
node_name = "rbmk2"
clone {
vm_id = 169
full = true
datastore_id = "local-lvm"
}
cpu {
sockets = 1
cores = 2
}
memory {
dedicated = 4096
}
network_device {
model = "virtio"
bridge = "vmbr0"
}
initialization {
datastore_id = "local-lvm"
user_account {
username = "devops"
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFyVe1ZhUCVs9imt0UmcCIXRAHpoSKFQ7IH/ekEXohZG dzoni-wolkabout"
]
}
ip_config {
ipv4 {
address = var.vm_addresses.charlie
gateway = var.vm_gateway
}
}
}
agent {
enabled = true
}
}
resource "proxmox_virtual_environment_vm" "vm_delta" {
name = "terraform-multi-vm-delta"
node_name = "rbmk2"
clone {
vm_id = 169
full = true
datastore_id = "local-lvm"
}
cpu {
sockets = 1
cores = 2
}
memory {
dedicated = 4096
}
network_device {
model = "virtio"
bridge = "vmbr0"
}
initialization {
datastore_id = "local-lvm"
user_account {
username = "devops"
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFyVe1ZhUCVs9imt0UmcCIXRAHpoSKFQ7IH/ekEXohZG dzoni-wolkabout"
]
}
ip_config {
ipv4 {
address = var.vm_addresses.delta
gateway = var.vm_gateway
}
}
}
agent {
enabled = true
}
}