From 753d5c38e46588a6b1ca301c86fa13e9b8a04a4c Mon Sep 17 00:00:00 2001 From: Vezpi Date: Fri, 21 Mar 2025 21:57:26 +0000 Subject: [PATCH] add package upgrades and output of VM IP --- terraform/bpg-simple-vm/main.tf | 33 ++++++++++++++++++---------- terraform/bpg-simple-vm/provider.tf | 12 +++++----- terraform/bpg-simple-vm/variables.tf | 2 +- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/terraform/bpg-simple-vm/main.tf b/terraform/bpg-simple-vm/main.tf index 6d2a00f..a000c35 100644 --- a/terraform/bpg-simple-vm/main.tf +++ b/terraform/bpg-simple-vm/main.tf @@ -1,8 +1,8 @@ data "proxmox_virtual_environment_vms" "template" { filter { - name = "name" - values = ["ubuntu-cloud"] - } + name = "name" + values = ["ubuntu-cloud"] + } } resource "proxmox_virtual_environment_file" "cloud_config" { @@ -11,9 +11,11 @@ resource "proxmox_virtual_environment_file" "cloud_config" { node_name = "zenith" source_raw { file_name = "simple_vm.cloud-config.yaml" - data = <<-EOF + data = <<-EOF #cloud-config hostname: simple-vm + package_update: true + package_upgrade: true packages: - qemu-guest-agent users: @@ -25,7 +27,8 @@ resource "proxmox_virtual_environment_file" "cloud_config" { - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID62LmYRu1rDUha3timAIcA39LtcIOny1iAgFLnxoBxm vez@bastion" sudo: ALL=(ALL) NOPASSWD:ALL runcmd: - - systemctl enable --now qemu-guest-agent + - systemctl enable qemu-guest-agent + - reboot EOF } } @@ -41,24 +44,24 @@ resource "proxmox_virtual_environment_vm" "simple_vm" { clone { vm_id = data.proxmox_virtual_environment_vms.template.vms[0].vm_id } - bios = "ovmf" + bios = "ovmf" machine = "q35" cpu { cores = 2 - type = "host" + type = "host" } memory { dedicated = 2048 } disk { datastore_id = "ceph-workload" - interface = "scsi0" - size = 4 + interface = "scsi0" + size = 4 } initialization { user_data_file_id = proxmox_virtual_environment_file.cloud_config.id - datastore_id = "ceph-workload" - interface = "scsi1" + datastore_id = "ceph-workload" + interface = "scsi1" ip_config { ipv4 { address = "dhcp" @@ -66,7 +69,7 @@ resource "proxmox_virtual_environment_vm" "simple_vm" { } } network_device { - bridge = "vmbr0" + bridge = "vmbr0" vlan_id = 66 } operating_system { @@ -76,3 +79,9 @@ resource "proxmox_virtual_environment_vm" "simple_vm" { type = "std" } } + +output "vm_ip" { + value = proxmox_virtual_environment_vm.simple_vm.ipv4_addresses[1][0] + description = "VM IP" +} + diff --git a/terraform/bpg-simple-vm/provider.tf b/terraform/bpg-simple-vm/provider.tf index 0d5d90a..518dd4c 100644 --- a/terraform/bpg-simple-vm/provider.tf +++ b/terraform/bpg-simple-vm/provider.tf @@ -1,18 +1,18 @@ terraform { required_providers { proxmox = { - source = "bpg/proxmox" + source = "bpg/proxmox" } } } provider "proxmox" { - endpoint = var.proxmox_endpoint + endpoint = var.proxmox_endpoint api_token = var.proxmox_api_token - insecure = false + insecure = false ssh { - agent = false + agent = false private_key = file("~/.ssh/id_ed25519") - username = "root" - } + username = "root" + } } diff --git a/terraform/bpg-simple-vm/variables.tf b/terraform/bpg-simple-vm/variables.tf index 0b4e63a..4d76b9e 100644 --- a/terraform/bpg-simple-vm/variables.tf +++ b/terraform/bpg-simple-vm/variables.tf @@ -6,5 +6,5 @@ variable "proxmox_endpoint" { variable "proxmox_api_token" { description = "Proxmox API token" type = string - sensitive = true + sensitive = true }