terraform { required_providers { vsphere = { source = "hashicorp/vsphere" version = "~> 2.4" } } } variable "vsphere_user" {} variable "vsphere_password" {} variable "vsphere_server" {} provider "vsphere" { user = var.vsphere_user password = var.vsphere_password vsphere_server = var.vsphere_server allow_unverified_ssl = true } data "vsphere_datacenter" "dc" { name = "Datacenter" # ВАШ ДАТАЦЕНТР } data "vsphere_datastore" "datastore" { name = "datastore1" # ВАШ ДАТАСТОР datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_resource_pool" "pool" { name = "Cluster/Resources" # ВАШ КЛАСТЕР ИЛИ ПУЛ РЕСУРСОВ datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_network" "network" { name = "VM Network" # ВАША СЕТЬ datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_virtual_machine" "template" { name = "debian-minimal-template" # ИМЯ ВАШЕГО ШАБЛОНА datacenter_id = data.vsphere_datacenter.dc.id } resource "vsphere_virtual_machine" "npm_vm" { name = "nginx-proxy-manager" resource_pool_id = data.vsphere_resource_pool.pool.id datastore_id = data.vsphere_datastore.datastore.id num_cpus = 1 memory = 1024 # 1 ГБ ОЗУ более чем достаточно guest_id = data.vsphere_virtual_machine.template.guest_id network_interface { network_id = data.vsphere_network.network.id adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0] } disk { label = "disk0" size = 8 # 8 ГБ диска (можно меньше, если шаблон меньше) thin_provisioned = true } clone { template_uuid = data.vsphere_virtual_machine.template.id customize { linux_options { host_name = "npm-server" domain = "local" } network_interface { ipv4_address = "192.168.1.100" # УКАЖИТЕ ЖЕЛАЕМЫЙ СТАТИЧЕСКИЙ IP ipv4_netmask = 24 } ipv4_gateway = "192.168.1.1" # УКАЖИТЕ ВАШ ШЛЮЗ dns_server_list = ["8.8.8.8", "1.1.1.1"] } } }