102 lines
2.0 KiB
Terraform
102 lines
2.0 KiB
Terraform
# https://registry.terraform.io/providers/Telmate/proxmox/latest/docs/guides/cloud-init%2520getting%2520started
|
|
locals {
|
|
vms = {
|
|
vm100 = {
|
|
vmid = 100
|
|
name = "runner-docker"
|
|
memory = 1024
|
|
cores = 1
|
|
primary_disk_size = "32G"
|
|
},
|
|
}
|
|
}
|
|
|
|
provider "proxmox" {
|
|
pm_api_url = "https://10.5.1.11:8006/api2/json"
|
|
pm_tls_insecure = true
|
|
pm_user = "tfuser@pve"
|
|
pm_api_token_id = "tfuser@pve!tf"
|
|
pm_api_token_secret = "992b51e6-578d-43ca-bc49-720fd407ef3f"
|
|
}
|
|
|
|
resource "proxmox_vm_qemu" "cloudinit" {
|
|
for_each = local.vms
|
|
vmid = each.value.vmid
|
|
name = each.value.name
|
|
target_node = "pve-mac"
|
|
agent = 1
|
|
full_clone = true
|
|
|
|
cpu {
|
|
cores = each.value.cores
|
|
}
|
|
memory = each.value.memory
|
|
boot = "order=scsi0"
|
|
clone = "debian13-template"
|
|
scsihw = "virtio-scsi-single"
|
|
vm_state = "running"
|
|
automatic_reboot = true
|
|
|
|
cicustom = "vendor=local:snippets/init-agent.yaml"
|
|
ciupgrade = true
|
|
skip_ipv6 = true
|
|
ciuser = "user"
|
|
cipassword = "user"
|
|
sshkeys = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKxACXG6mkk+CML+NsTyJyteiyszpM7m1Pmq+AW7cQ19 yaprac terraform"
|
|
ipconfig0 = "ip=dhcp"
|
|
|
|
serial {
|
|
id = 0
|
|
}
|
|
|
|
disks {
|
|
scsi {
|
|
scsi0 {
|
|
disk {
|
|
storage = "local-lvm"
|
|
size = each.value.primary_disk_size
|
|
discard = false
|
|
iothread = false
|
|
}
|
|
}
|
|
}
|
|
ide {
|
|
ide1 {
|
|
cloudinit {
|
|
storage = "local-lvm"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
network {
|
|
id = 0
|
|
bridge = "vmbr0"
|
|
model = "virtio"
|
|
}
|
|
|
|
startup_shutdown {
|
|
order = -1
|
|
startup_delay = -1
|
|
shutdown_timeout = -1
|
|
}
|
|
|
|
lifecycle {
|
|
ignore_changes = [
|
|
vm_state,
|
|
cipassword,
|
|
sshkeys,
|
|
disks,
|
|
]
|
|
}
|
|
}
|
|
|
|
terraform {
|
|
required_providers {
|
|
proxmox = {
|
|
source = "Telmate/proxmox"
|
|
version = "3.0.2-rc07"
|
|
}
|
|
}
|
|
}
|