From 3e5d65773c2d9d7b68f9f6828ab56b9b23d17859 Mon Sep 17 00:00:00 2001 From: Vezpi Date: Sun, 23 Mar 2025 22:55:30 +0000 Subject: [PATCH] create multiple-vm project --- terraform/modules/pve_vm/main.tf | 2 +- terraform/modules/pve_vm/provider.tf | 11 ----------- terraform/modules/pve_vm/variables.tf | 11 ----------- terraform/projects/bpg-simple-vm/main.tf | 2 -- terraform/projects/bpg-simple-vm/provider.tf | 18 ++++++++++++++++++ terraform/projects/bpg-simple-vm/variables.tf | 12 ++++++++++-- terraform/projects/multiple-vm/main.tf | 13 +++++++++++++ terraform/projects/multiple-vm/provider.tf | 18 ++++++++++++++++++ terraform/projects/multiple-vm/variables.tf | 10 ++++++++++ 9 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 terraform/projects/bpg-simple-vm/provider.tf create mode 100644 terraform/projects/multiple-vm/main.tf create mode 100644 terraform/projects/multiple-vm/provider.tf create mode 100644 terraform/projects/multiple-vm/variables.tf diff --git a/terraform/modules/pve_vm/main.tf b/terraform/modules/pve_vm/main.tf index dae526f..d68e897 100644 --- a/terraform/modules/pve_vm/main.tf +++ b/terraform/modules/pve_vm/main.tf @@ -10,7 +10,7 @@ resource "proxmox_virtual_environment_file" "cloud_config" { datastore_id = "local" node_name = var.node_name source_raw { - file_name = "vm.cloud-config.yaml" + file_name = "${var.vm_name}.cloud-config.yaml" data = <<-EOF #cloud-config hostname: ${var.vm_name} diff --git a/terraform/modules/pve_vm/provider.tf b/terraform/modules/pve_vm/provider.tf index 518dd4c..e5901a2 100644 --- a/terraform/modules/pve_vm/provider.tf +++ b/terraform/modules/pve_vm/provider.tf @@ -5,14 +5,3 @@ terraform { } } } - -provider "proxmox" { - endpoint = var.proxmox_endpoint - api_token = var.proxmox_api_token - insecure = false - ssh { - agent = false - private_key = file("~/.ssh/id_ed25519") - username = "root" - } -} diff --git a/terraform/modules/pve_vm/variables.tf b/terraform/modules/pve_vm/variables.tf index 312c311..16708f9 100644 --- a/terraform/modules/pve_vm/variables.tf +++ b/terraform/modules/pve_vm/variables.tf @@ -1,14 +1,3 @@ -variable "proxmox_endpoint" { - description = "Proxmox URL endpoint" - type = string -} - -variable "proxmox_api_token" { - description = "Proxmox API token" - type = string - sensitive = true -} - variable "node_name" { description = "Proxmox host for the VM" type = string diff --git a/terraform/projects/bpg-simple-vm/main.tf b/terraform/projects/bpg-simple-vm/main.tf index 2e3de2a..6fa4d1a 100644 --- a/terraform/projects/bpg-simple-vm/main.tf +++ b/terraform/projects/bpg-simple-vm/main.tf @@ -1,7 +1,5 @@ module "pve_vm" { source = "../../modules/pve_vm" - proxmox_endpoint = var.proxmox_endpoint - proxmox_api_token = var.proxmox_api_token node_name = "zenith" vm_name = "zenith-vm" vm_cpu = 2 diff --git a/terraform/projects/bpg-simple-vm/provider.tf b/terraform/projects/bpg-simple-vm/provider.tf new file mode 100644 index 0000000..518dd4c --- /dev/null +++ b/terraform/projects/bpg-simple-vm/provider.tf @@ -0,0 +1,18 @@ +terraform { + required_providers { + proxmox = { + source = "bpg/proxmox" + } + } +} + +provider "proxmox" { + endpoint = var.proxmox_endpoint + api_token = var.proxmox_api_token + insecure = false + ssh { + agent = false + private_key = file("~/.ssh/id_ed25519") + username = "root" + } +} diff --git a/terraform/projects/bpg-simple-vm/variables.tf b/terraform/projects/bpg-simple-vm/variables.tf index 010b9e5..fb37c8d 100644 --- a/terraform/projects/bpg-simple-vm/variables.tf +++ b/terraform/projects/bpg-simple-vm/variables.tf @@ -1,2 +1,10 @@ -variable "proxmox_endpoint" {} -variable "proxmox_api_token" {} \ No newline at end of file +variable "proxmox_endpoint" { + description = "Proxmox URL endpoint" + type = string +} + +variable "proxmox_api_token" { + description = "Proxmox API token" + type = string + sensitive = true +} \ No newline at end of file diff --git a/terraform/projects/multiple-vm/main.tf b/terraform/projects/multiple-vm/main.tf new file mode 100644 index 0000000..1071d5f --- /dev/null +++ b/terraform/projects/multiple-vm/main.tf @@ -0,0 +1,13 @@ +module "pve_vm" { + source = "../../modules/pve_vm" + count = 2 + node_name = "zenith" + vm_name = "zenith-vm-${count.index + 1}" + vm_cpu = 2 + vm_ram = 2048 + vm_vlan = 66 +} + +output "vm_ip" { + value = module.pve_vm[*].vm_ip +} \ No newline at end of file diff --git a/terraform/projects/multiple-vm/provider.tf b/terraform/projects/multiple-vm/provider.tf new file mode 100644 index 0000000..518dd4c --- /dev/null +++ b/terraform/projects/multiple-vm/provider.tf @@ -0,0 +1,18 @@ +terraform { + required_providers { + proxmox = { + source = "bpg/proxmox" + } + } +} + +provider "proxmox" { + endpoint = var.proxmox_endpoint + api_token = var.proxmox_api_token + insecure = false + ssh { + agent = false + private_key = file("~/.ssh/id_ed25519") + username = "root" + } +} diff --git a/terraform/projects/multiple-vm/variables.tf b/terraform/projects/multiple-vm/variables.tf new file mode 100644 index 0000000..fb37c8d --- /dev/null +++ b/terraform/projects/multiple-vm/variables.tf @@ -0,0 +1,10 @@ +variable "proxmox_endpoint" { + description = "Proxmox URL endpoint" + type = string +} + +variable "proxmox_api_token" { + description = "Proxmox API token" + type = string + sensitive = true +} \ No newline at end of file