commit 060045cba2595dc2df1d0fb908388ba0b6bbc7a6 Author: ogrechko Date: Fri May 22 12:07:18 2026 +0300 Добавить 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