diff --git a/terraform/main.tf b/terraform/main.tf index 909154c..861994c 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -12,4 +12,9 @@ module "vm" { #vm_template = var.vm_template target_node = var.target_node ssh_public_key = var.ssh_public_key + vm_cores = var.vm_cores + vm_sockets = var.vm_sockets + vm_memory = var.vm_memory + vm_iso = var.vm_iso + vm_disks = var.vm_disks } \ No newline at end of file diff --git a/terraform/modules/vm/main.tf b/terraform/modules/vm/main.tf index 2056f34..f9a4dd6 100644 --- a/terraform/modules/vm/main.tf +++ b/terraform/modules/vm/main.tf @@ -5,11 +5,11 @@ resource "proxmox_vm_qemu" "vm" { full_clone = true cpu { - cores = 2 - sockets = 1 + cores = var.vm_cores + sockets = var.vm_sockets } - memory = 2048 + memory = var.vm_memory scsihw = "virtio-scsi-pci" bootdisk = "scsi0" @@ -19,9 +19,20 @@ resource "proxmox_vm_qemu" "vm" { bridge = "vmbr0" } + dynamic "disk" { + for_each = var.vm_disks + content { + iso = disk.value.iso == "" ? "": var.vm_iso + slot = disk.value.slot + type = "scsi" + storage = "local-lvm" + size = disk.value.size + } + } + disk { - iso = "local:iso/ubuntu-24.04.2-live-server-amd64.iso" - slot = "scsi0" + iso = "local:iso/ubuntu-24.04.2-live-server-amd64.iso" + slot = "scsi0" type = "cdrom" } diff --git a/terraform/modules/vm/variables.tf b/terraform/modules/vm/variables.tf index 41f46a4..ca22520 100644 --- a/terraform/modules/vm/variables.tf +++ b/terraform/modules/vm/variables.tf @@ -1,4 +1,16 @@ variable "vm_name" {} #variable "vm_template" {} variable "target_node" {} -variable "ssh_public_key" {} \ No newline at end of file +variable "ssh_public_key" {} +variable "vm_cores" {} +variable "vm_sockets" {} +variable "vm_memory" {} +variable "vm_iso" {} +variable "vm_disks" { + description = "Список дисков: список объектов с size и slot" + type = list(object({ + size = string + slot = number + })) + +} \ No newline at end of file diff --git a/terraform/variables.tf b/terraform/variables.tf index 954c719..e440415 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -4,4 +4,15 @@ variable "pm_password" {} variable "vm_name" {} #variable "vm_template" {} variable "target_node" {} -variable "ssh_public_key" {} \ No newline at end of file +variable "ssh_public_key" {} +variable "vm_cores" {} +variable "vm_sockets" {} +variable "vm_memory" {} +variable "vm_iso" {} +variable "vm_disks" { + description = "Список дисков: список объектов с size и slot" + type = list(object({ + size = string + slot = number + })) +} \ No newline at end of file