Перейти к основному содержимому
  1. Posts/
  2. Terraform./

Автоматическая установка нескольких виртуальных машин в Proxmox 9.0.3 с помощью Terraform в Docker

··236 слов·2 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Автоматизация в Proxmox - This article is part of a series.
Part : This Article
Note

Актуализация. Как и в статье про базовую установку, здесь Terraform запускается через Docker. Для регулярной работы с домашней инфраструктурой я перешёл на нативную установку - без network_mode: host и проброса volume, подробнее в статье «Terraform для Proxmox: правильная нативная установка вместо Docker». Файл конфигурации ниже переносится на нативную установку без единой правки.

Ниже приведен файл, который я использовал в ролике, посвященный установке и развертыванию сразу трех виртуальных машин с помощью Terraform

variable vm_configs {
  type = map(object({
      vm_id = number
      name = string
      cores = number
      memory = number
      vm_state = string 
  }))
  default = {
      "youtube-1" = { vm_id = 357, name = "youtube-1", cores = 1, memory = 2048, vm_state = "stopped"}
      "youtube-2" = { vm_id = 358, name = "youtube-2", cores = 1, memory = 4096, vm_state = "stopped"}   
      "youtube-3" = { vm_id = 359, name = "youtube-3", cores = 1, memory = 2048, vm_state = "running"}
  }
}

resource "proxmox_vm_qemu" "youtubetestvms" {
  for_each = var.vm_configs
  vmid        = each.value.vm_id
  name        = each.value.name
  target_node = "belisarius"
  clone       = "ubuntutemplate"
  full_clone  = true
  bios        = "ovmf"
  agent       = 1 
  scsihw      = "virtio-scsi-single"
  os_type     = "ubuntu"
  cpu_type    = "x86-64-v2-AES"
  cores       = each.value.cores
  sockets     = 1
  memory      = each.value.memory 

  vm_state = each.value.vm_state


  disks {
    scsi {
      scsi0 {
        disk {
          size    = "32G"
          storage = "local"
          format  = "qcow2"
        }
      }
    }
  }

  network {
    id     = 0
    model  = "virtio"
    bridge = "vmbr0"
  }
}
Автоматизация в Proxmox - This article is part of a series.
Part : This Article

Related

Автоматическая установка виртуальной машины в Proxmox 9.0.3 с помощью Terraform в Docker

··2705 слов·13 минут· loading · loading
Пошаговое руководство по автоматической установке виртуальных машин в Proxmox 9.0.3 с использованием Terraform в Docker. Рассмотрены настройка окружения, создание конфигураций Terraform и автоматизация развертывания VM для ускорения и упрощения работы с Proxmox.

Установка SSL-сертификатов в Proxmox с помощью встроенного ACME

·378 слов·2 минут· loading · loading
Подробная инструкция по настройке SSL в Proxmox для безопасного доступа к веб-интерфейсу и API. Рассмотрены генерация и установка сертификатов, настройка HTTPS и рекомендации по поддержанию безопасности кластера.

Nextcloud в Proxmox: Полная установка в LXC без Docker

··2948 слов·14 минут· loading · loading
Подробная инструкция по установке и настройке Nextcloud в LXC-контейнере - MariaDB как в видео (с опцией внешнего PostgreSQL), опциональные данные на NFS-шаре, PHP-FPM/OPCache/APCu/Redis, живые обновления через notify_push и фото-галерея Memories с транскодированием видео.