From 79f2c0450123e4b1f74a665e9b39cda2624a3652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Limpinho?= <53994778+TomasLimpinho@users.noreply.github.com> Date: Wed, 20 Aug 2025 15:39:28 +0100 Subject: [PATCH] proxmox template --- main.tf | 6 +-- proxmox.tf | 120 ++++++++++++++++++++++++------------------- proxmox.variables.tf | 6 +++ 3 files changed, 77 insertions(+), 55 deletions(-) diff --git a/main.tf b/main.tf index 9cdd36e..f49b09a 100644 --- a/main.tf +++ b/main.tf @@ -11,10 +11,10 @@ terraform { bitwarden = { source = "maxlaverse/bitwarden" version = ">= 0.15.0" - } + } proxmox = { - source = "telmate/proxmox" - version = "3.0.1-rc9" + source = "bpg/proxmox" + version = "0.82.1" } } backend "consul" { diff --git a/proxmox.tf b/proxmox.tf index 184853e..75d8dc9 100644 --- a/proxmox.tf +++ b/proxmox.tf @@ -1,54 +1,70 @@ -provider "proxmox" { - pm_api_url = var.proxmox_server -} -resource "proxmox_pool" "resource-pool" { - poolid = "resource-pool" - comment = "pool auto created" -} -resource "proxmox_vm_qemu" "vm-kubernetes-01" { - name = "VM-kubernetes-01" - target_node = "fenix" - vmid = 1001 - desc = "VM kubernetes 01 created via iac" - bios = "seabios" - onboot = true - vm_state = "running" - boot = "order=scsi0;ide2;net0" - agent = 1 - memory = 4096 - hotplug = "network,disk,usb" - scsihw = "virtio-scsi-single" - pool = "resource-pool" - tags = "iac-tag" - os_type = "ubuntu" - ipconfig0 = "ip=192.168.1.24/24" - cpu { - cores = 2 - sockets = 1 - type = "x86-64-v2-AES" - } - network { - id = 0 - model = "virtio" - bridge = "vmbr0" - } - disks { - ide { - ide2 { - cdrom { - iso = "local:iso/Fedora-Workstation-Live-x86_64-41-1.4.iso" - } - } - } - scsi { - scsi0 { - disk { - backup = true - size = "64G" - storage = "local-lvm" - } - } - } +provider "proxmox" { + endpoint = var.proxmox_server + api_token = var.proxmox_apikey +} + +resource "proxmox_virtual_environment_download_file" "Fedora-iso" { + content_type = "iso" # tipo do arquivo + datastore_id = "local" # datastore do Proxmox onde o arquivo será guardado + node_name = "fenix" # nó do Proxmox onde será armazenado + + url = "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-41-1.4.iso" +} + +resource "proxmox_virtual_environment_vm" "proxmox-kubernetes-VM-template" { + name = "proxmox-kubernetes-VM-template" + node_name = "fenix" + vm_id = 1002 + template = true + started = false + + tags = ["opentofu", "kubernetes", "fedora"] + machine = "q35" + bios = "seabios" + description = "kubernetes VM Template created via iac" + + cpu { + cores = 2 } -} \ No newline at end of file + + memory { + dedicated = 2048 + } + + # Configuração do disco rígido + disk { + datastore_id = "local-lvm" + interface = "scsi0" + size = 64 + } + + # Configuração da interface de rede + network_device { + bridge = "vmbr0" + model = "virtio" + } + + # Configuração do CD-ROM com a ISO + cdrom { + enabled = true + file_id = "local:iso/Fedora-Workstation-Live-x86_64-41-1.4.iso" + } + + + initialization { + ip_config { + ipv4 { + address = "dhcp" + } + } + + } + +} + + + + + + diff --git a/proxmox.variables.tf b/proxmox.variables.tf index e84224a..e6995bd 100644 --- a/proxmox.variables.tf +++ b/proxmox.variables.tf @@ -3,3 +3,9 @@ variable "proxmox_server" { type = string sensitive = false } + +variable "proxmox_apikey" { + description = "Proxmox server api key" + type = string + sensitive = false +} \ No newline at end of file