Обновлена 17 июля 2026 г. в 15:55
Пример манифеста Terraform для создания ресурсов группы сервисов «Балансировщики нагрузки»
С помощью этого манифеста будут созданы следующие объекты группы сервисов «Балансировщики нагрузки»:
HTTPбалансировщики нагрузки.TCPбалансировщики нагрузки.
Дополнительно будут созданы:
- Тестовая сеть, подсеть, группа безопасности.
- Инстанс ВМ.
- Блочное хранилище.
Листинг файла-манифеста создания ресурсов группы сервисов «Балансировщики нагрузки»
# Блок общих настроек terraformterraform {required_providers {vkcs = {source = "vk-cs/vkcs"version = "~> 0.1.12"}}}resource "vkcs_networking_network" "network_test" {name = "network_test"admin_state_up = "true"port_security_enabled = "true"}resource "vkcs_networking_subnet" "subnet_test" {name = "test_subnet"network_id = "${vkcs_networking_network.network_test.id}"cidr = "192.168.199.0/24"}resource "vkcs_networking_router" "router_test" {name = "router_test"admin_state_up = trueexternal_network_id = "76dfd377-b303-4b69-8cab-0d2f640130c5"}resource "vkcs_networking_router_interface" "router_interface_test" {router_id = "${vkcs_networking_router.router_test.id}"subnet_id = "${vkcs_networking_subnet.subnet_test.id}"}resource "vkcs_networking_secgroup" "secgroup_test" {name = "secgroup_test"description = "My security group"}resource "vkcs_networking_secgroup_rule" "secgroup_rule_test_ssh" {direction = "ingress"ethertype = "IPv4"protocol = "tcp"port_range_min = 22port_range_max = 22remote_ip_prefix = "0.0.0.0/0"security_group_id = "${vkcs_networking_secgroup.secgroup_test.id}"}resource "vkcs_networking_secgroup_rule" "secgroup_rule_test_http" {direction = "ingress"ethertype = "IPv4"protocol = "tcp"port_range_min = 8080port_range_max = 8080remote_ip_prefix = "0.0.0.0/0"security_group_id = "${vkcs_networking_secgroup.secgroup_test.id}"}resource "vkcs_networking_secgroup_rule" "secgroup_rule_test_tcp" {direction = "ingress"ethertype = "IPv4"protocol = "tcp"port_range_min = 9090port_range_max = 9090remote_ip_prefix = "0.0.0.0/0"security_group_id = "${vkcs_networking_secgroup.secgroup_test.id}"}resource "vkcs_lb_loadbalancer" "loadbalancer_test_http" {name = "loadbalancer_test_http"vip_subnet_id = "${vkcs_networking_subnet.subnet_test.id}"security_group_ids = [ "${vkcs_networking_secgroup.secgroup_test.id}" ]}resource "vkcs_lb_loadbalancer" "loadbalancer_test_tcp" {name = "loadbalancer_test_tcp"vip_subnet_id = "${vkcs_networking_subnet.subnet_test.id}"security_group_ids = [ "${vkcs_networking_secgroup.secgroup_test.id}" ]}resource "vkcs_lb_listener" "listener_test_http" {name = "listener_test_http"protocol = "HTTP"protocol_port = 8080loadbalancer_id = "${vkcs_lb_loadbalancer.loadbalancer_test_http.id}"}resource "vkcs_lb_listener" "listener_test_tcp" {name = "listener_test_tcp"protocol = "TCP"protocol_port = 9090loadbalancer_id = "${vkcs_lb_loadbalancer.loadbalancer_test_tcp.id}"}resource "vkcs_lb_pool" "pool_test_http" {name = "pool_test_http"protocol = "HTTP"lb_method = "ROUND_ROBIN"loadbalancer_id = "${vkcs_lb_loadbalancer.loadbalancer_test_http.id}"}resource "vkcs_lb_pool" "pool_test_tcp" {name = "pool_test_tcp"protocol = "TCP"lb_method = "ROUND_ROBIN"loadbalancer_id = "${vkcs_lb_loadbalancer.loadbalancer_test_tcp.id}"}resource "vkcs_lb_l7policy" "l7policy_test_http" {name = "test"action = "REDIRECT_TO_URL"description = "test description"position = 1listener_id = "${vkcs_lb_listener.listener_test_http.id}"redirect_url = "http://www.example.com"}resource "vkcs_lb_l7rule" "l7rule_test" {l7policy_id = "${vkcs_lb_l7policy.l7policy_test_http.id}"compare_type = "EQUAL_TO"type = "PATH"value = "/api"}resource "vkcs_blockstorage_volume" "vol1_test" {name = "instance1_vol"size = 10image_id = "4d8bc6c0-5623-43bf-9179-1bebcb943b47"volume_type = "ceph"availability_zone = "AZ1"}resource "vkcs_blockstorage_volume" "vol2_test" {name = "instance1_vol"size = 10image_id = "4d8bc6c0-5623-43bf-9179-1bebcb943b47"volume_type = "ceph"availability_zone = "AZ1"}resource "vkcs_compute_instance" "instance1_test" {name = "terraform-instance1-test"flavor_id = "fc83b839-a97b-4074-83d6-211531ffd8b3"key_pair = "CentOS-Basic-1-1-10GB-5CDfA91u"security_groups = ["secgroup_test"]block_device {uuid = "${vkcs_blockstorage_volume.vol1_test.id}"source_type = "volume"boot_index = 0destination_type = "volume"delete_on_termination = true}network {name = "network_test"}depends_on = [vkcs_networking_network.network_test,vkcs_networking_subnet.subnet_test,vkcs_networking_secgroup.secgroup_test]}resource "vkcs_compute_instance" "instance2_test" {name = "terraform-instance2-test"flavor_id = "fc83b839-a97b-4074-83d6-211531ffd8b3"key_pair = "CentOS-Basic-1-1-10GB-5CDfA91u"security_groups = ["secgroup_test"]block_device {uuid = "${vkcs_blockstorage_volume.vol2_test.id}"source_type = "volume"boot_index = 0destination_type = "volume"delete_on_termination = true}network {name = "network_test"}depends_on = [vkcs_networking_network.network_test,vkcs_networking_subnet.subnet_test,vkcs_networking_secgroup.secgroup_test]}resource "vkcs_lb_members" "members_http_test" {pool_id = "${vkcs_lb_pool.pool_test_http.id}"member {address = "${vkcs_compute_instance.instance1_test.access_ip_v4}"protocol_port = 8080weight = 2}member {address = "${vkcs_compute_instance.instance2_test.access_ip_v4}"protocol_port = 8080weight = 10}}resource "vkcs_lb_members" "members_tcp_test" {pool_id = "${vkcs_lb_pool.pool_test_tcp.id}"member {address = "${vkcs_compute_instance.instance1_test.access_ip_v4}"protocol_port = 9090weight = 10}member {address = "${vkcs_compute_instance.instance2_test.access_ip_v4}"protocol_port = 9090weight = 2}}