Terraform позволяет автоматизировать создание и настройку балансировщика нагрузки в PS Cloud Services .
Перед началом убедитесь, что у вас установлен Terraform и настроен OpenStack provider.
В блоке конфигурации подключения обязательно укажите параметр use_octavia = true.
#### Configure the OpenStack Provider ####
provider "openstack" {
user_name = "your_project_login"
tenant_name = "your_project_name"
password = "your_project_password"
auth_url = "https://auth.pscloud.io/v3/"
region = "kz-ala-1"
use_octavia = true
}
#### End config block ####
##### Load Balancer Details #####
resource "openstack_lb_loadbalancer_v2" "http_balancer" {
name = "http_balancer"
vip_network_id = "be8fa30d-be27-45ed-8f72-ab9bc1ab8b3f"
}
##### End Load Balancer Details #####
##### Listener Details #####
resource "openstack_lb_listener_v2" "http_listen" {
name = "http_listen"
description = "what to listen?"
protocol = "HTTP"
protocol_port = 80
connection_limit = -1
loadbalancer_id = openstack_lb_loadbalancer_v2.http_balancer.id
}
##### End Listener Details #####
##### Pool Details #####
resource "openstack_lb_pool_v2" "http_pool" {
name = "http_pool"
protocol = "HTTP"
lb_method = "LEAST_CONNECTIONS"
listener_id = openstack_lb_listener_v2.http_listen.id
}
##### End Pool Details #####
##### Monitor Details #####
resource "openstack_lb_monitor_v2" "http_monitor" {
name = "http_monitor"
delay = 5
max_retries = 3
timeout = 5
type = "HTTP"
url_path = "/"
http_method = "GET"
expected_codes = "200"
pool_id = openstack_lb_pool_v2.http_pool.id
}
##### End Monitor Details #####
##### Pool Members Details #####
resource "openstack_lb_member_v2" "alpha_http_member" {
name = "alpha_http_member"
address = "192.168.0.191"
protocol_port = 80
pool_id = openstack_lb_pool_v2.http_pool.id
}
resource "openstack_lb_member_v2" "beta_http_member" {
name = "beta_http_member"
address = "192.168.0.205"
protocol_port = 80
pool_id = openstack_lb_pool_v2.http_pool.id
}
##### End Pool Members Details #####
##### (Optional) Load Balancer IP Output #####
output "http_balancer_vip_address" {
value = openstack_lb_loadbalancer_v2.http_balancer.vip_address
}
##### (Optional) End Load Balancer IP Output #####
Provider — параметры подключения к OpenStack (логин, проект, пароль, регион).
Load Balancer Details — имя балансировщика и сеть, в которой он создаётся.
Listener Details — протокол, порт и количество соединений.
Pool Details — настройки пула (протокол, алгоритм балансировки).
Monitor Details — параметры проверки состояния серверов.
Pool Members Details — список серверов, участвующих в балансировке.
Output — вывод IP-адреса балансировщика после его создания (опционально).
После применения шаблона Terraform будет создан балансировщик нагрузки с listener, пулом, проверкой состояния и подключёнными серверами.
Для запуска используйте команды:
terraform plan
terraform apply
Для удаления ресурсов выполните:
Если возникнут вопросы, обратитесь в техническую поддержку PS Cloud Services .