From 060045cba2595dc2df1d0fb908388ba0b6bbc7a6 Mon Sep 17 00:00:00 2001 From: ogrechko Date: Fri, 22 May 2026 12:07:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20terraform/main.tf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terraform/main.tf | 81 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 terraform/main.tf diff --git a/terraform/main.tf b/terraform/main.tf new file mode 100644 index 0000000..247b509 --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,81 @@ +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"] + } + } +} \ No newline at end of file