Files
terraform/main.tf
2024-06-02 23:36:27 +02:00

78 lines
2.0 KiB
HCL

terraform {
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.1-rc2"
}
sops = {
source = "carlpett/sops"
version = "~> 0.5"
}
}
}
data "sops_file" "tf-secret" {
source_file = "tf-secret.enc.json"
}
provider "proxmox" {
pm_api_url = "https://192.168.50.182:8006/api2/json"
pm_user = "root@pam"
pm_password = data.sops_file.tf-secret.data["proxmox_password"]
pm_tls_insecure = true
pm_log_enable = true
pm_log_file = "terraform-plugin-proxmox.log"
pm_debug = true
pm_log_levels = {
_default = "debug"
_capturelog = ""
}
}
# https://registry.terraform.io/providers/Telmate/proxmox/latest/docs/resources/vm_qemu#attribute-reference
resource "proxmox_vm_qemu" "test_server" {
count = 1
name = "test-vm-${count.index + 1}"
target_node = "pve"
clone = "debian-cloud"
agent = 1
os_type = "cloud-init"
cores = 2
sockets = 1
cpu = "host"
memory = 1024
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
disks {
scsi {
scsi0 {
disk {
size = 10
storage = "local-lvm"
}
}
}
ide {
ide3 {
cloudinit {
storage = "local-lvm"
}
}
}
}
network {
model = "virtio"
bridge = "vmbr0"
}
ipconfig0 = "ip=192.168.50.222/24,gw=192.168.50.1"
ssh_user = "root"
sshkeys = <<EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCfsg9RFSSGn31DNMy6Ap7QiD3cmkmY5RdgqOs8VtPPW1/jo5n49LzNHE1xNBf4nm+MdAQabnQzPIsjijsVGE/0q1RmRQZE9E7KrecnTWuFXuKXcCW12OxerxTmx7UF2yQwOG9Ws2b0D7zFQau6S0bwaVeAgM4EqKBIdOgCvR/cLoMuBpZphLAEgNgFXSmDtoU/uf5FebUsXY051rL8yN/hghy+3nE6RMr79yEFYtrtRWhiE5OdXzVurtPdecs2HulhvNIXGQLsYAX8/vrDMMidjGZBzrHcjCWxYVMM6RFc6u5DWIpQXT7atDJdIjoQvdFLUtbalNGrjCU0d/pz6yANyKR7yWRzZCOjA2Osqr3zEH1R84dNRSN2BXftGRYPtX6rgdj37FF7Lq83WQgUyuRZRUqROtPHLz7VxfbWv5St6Mi2stSJ4FSlPGAFDdCdHxCWphuCCEXzoo/HKFt6G0qngZ+BicmJHBwWB0McLuS9F5JQs06hL8YGyV4z6RG4lLM= rekin@mac13.local
EOF
}