diff --git a/lb.tf b/lb.tf new file mode 100644 index 0000000..31a7622 --- /dev/null +++ b/lb.tf @@ -0,0 +1,35 @@ +resource "yandex_lb_target_group" "group1" { + name = "group1" + target { + subnet_id = yandex_vpc_subnet.subnet1.id + address = yandex_compute_instance.vm[0].network_interface.0.ip_address + } + + target { + subnet_id = yandex_vpc_subnet.subnet1.id + address = yandex_compute_instance.vm[1].network_interface.0.ip_address + } +} + +resource "yandex_lb_network_load_balancer" "balancer1" { + name = "balancer1" + deletion_protection = "false" + listener { + name = "my-lb1" + port = 80 + external_address_spec { + ip_version = "ipv4" + } + } + + attached_target_group { + target_group_id = yandex_lb_target_group.group1.id + healthcheck { + name = "http" + http_options { + port = 80 + path = "/" + } + } + } +} diff --git a/main.tf b/main.tf index b231776..93e013c 100644 --- a/main.tf +++ b/main.tf @@ -9,84 +9,3 @@ terraform { provider "yandex" { zone = "ru-central1-b" } - -resource "yandex_compute_instance" "vm" { - count = 2 - name = "vm${count.index}" - platform_id = "standard-v1" - boot_disk { - initialize_params { - image_id = "fd87j6d92jlrbjqbl32q" # ubuntu 22.04 - size = 8 - } - } - - network_interface { - subnet_id = yandex_vpc_subnet.subnet1.id - nat = true - } - - resources { - core_fraction = 5 - cores = 2 - memory = 2 - } - - metadata = { user-data = "${file("users.yml")}" } -} - -resource "yandex_vpc_network" "network1" { - name = "network1" -} - -resource "yandex_vpc_subnet" "subnet1" { - name = "subnet1" - v4_cidr_blocks = [ "172.24.8.0/24" ] - network_id = yandex_vpc_network.network1.id -} - -resource "yandex_lb_target_group" "group1" { - name = "group1" - target { - subnet_id = yandex_vpc_subnet.subnet1.id - address = yandex_compute_instance.vm[0].network_interface.0.ip_address - } - - target { - subnet_id = yandex_vpc_subnet.subnet1.id - address = yandex_compute_instance.vm[1].network_interface.0.ip_address - } -} - -resource "yandex_lb_network_load_balancer" "balancer1" { - name = "balancer1" - deletion_protection = "false" - listener { - name = "my-lb1" - port = 80 - external_address_spec { - ip_version = "ipv4" - } - } - - attached_target_group { - target_group_id = yandex_lb_target_group.group1.id - healthcheck { - name = "http" - http_options { - port = 80 - path = "/" - } - } - } -} - -output "lb-ip" { - value = yandex_lb_network_load_balancer.balancer1.listener -} - -output "vm-ips" { - value = tomap({ - for name, vm in yandex_compute_instance.vm : name => vm.network_interface.0.nat_ip_address - }) -} diff --git a/outputs.tf b/outputs.tf new file mode 100644 index 0000000..7183801 --- /dev/null +++ b/outputs.tf @@ -0,0 +1,9 @@ +output "lb-ip" { + value = yandex_lb_network_load_balancer.balancer1.listener +} + +output "vm-ips" { + value = tomap({ + for name, vm in yandex_compute_instance.vm : name => vm.network_interface.0.nat_ip_address + }) +} diff --git a/vms.tf b/vms.tf new file mode 100644 index 0000000..839b1eb --- /dev/null +++ b/vms.tf @@ -0,0 +1,24 @@ +resource "yandex_compute_instance" "vm" { + count = 2 + name = "vm${count.index}" + platform_id = "standard-v1" + boot_disk { + initialize_params { + image_id = "fd87j6d92jlrbjqbl32q" # ubuntu 22.04 + size = 8 + } + } + + network_interface { + subnet_id = yandex_vpc_subnet.subnet1.id + nat = true + } + + resources { + core_fraction = 5 + cores = 2 + memory = 2 + } + + metadata = { user-data = "${file("users.yml")}" } +} diff --git a/vpc.tf b/vpc.tf new file mode 100644 index 0000000..f4774fe --- /dev/null +++ b/vpc.tf @@ -0,0 +1,9 @@ +resource "yandex_vpc_network" "network1" { + name = "network1" +} + +resource "yandex_vpc_subnet" "subnet1" { + name = "subnet1" + v4_cidr_blocks = [ "172.24.8.0/24" ] + network_id = yandex_vpc_network.network1.id +}