2016-10-13 8 views

ответ

0

Это технически делает, в том смысле, что она предоставляет вам с соответствующими функциями, чтобы запустить его:

https://www.terraform.io/docs/providers/google/r/compute_target_pool.html

К сожалению, документация на нее довольно беден и расположение функций означает, что вам необходимо настроить ряд взаимозависимых проверок работоспособности, целевых пулов, обработчиков бэкэнд и правил пересылки для достижения этой цели, очень отличающихся от того, насколько прост остальной. Сообщения об ошибках, отображаемые на terraform plan и apply, также весьма бесполезны.

В настоящее время я пытаюсь установить environment.tf, который реплицирует существующий балансировщик нагрузки, который я вручную установил, и это доказывает серьезность проб и ошибок. Hashicorp необходимо добавить в свои документы гораздо больше вариантов использования и объяснений.

1

По состоянию на сентябрь 2017 года, конечно! К сожалению, документация для него не такая уж большая.

Вот очень грубый пример, возможно, не просто с помощью копирования/вставки!

resource "google_compute_instance_group" "elasticsearch-cluster" { 
    name  = "elasticsearch-cluster" 
    description = "Terraform test instance group" 

    instances = [ 
    "${google_compute_instance.elasticsearch-compute-instance.*.self_link}" 
    ] 

    named_port { 
    name = "elasticsearch-api" 
    port = "9200" 
    } 

    named_port { 
    name = "elasticsearch-transport" 
    port = "9300" 
    } 

    zone = "us-central1-a" 
} 

resource "google_compute_forwarding_rule" "elasticsearch-forwarding-rule" { 
    name = "elasticsearch-lb" 
    load_balancing_scheme = "INTERNAL" 
    backend_service = "${google_compute_region_backend_service.elasticsearch-lb.self_link}" 
    ports = [ "9200", "9300" ] 
} 

resource "google_compute_region_backend_service" "elasticsearch-lb" { 
    name    = "elasticsearch-lb" 
    protocol   = "TCP" 
    timeout_sec  = 10 
    session_affinity = "NONE" 

    backend { 
    group = "${google_compute_instance_group.elasticsearch-cluster.self_link}" 
    } 

    health_checks = ["${google_compute_health_check.elasticsearch-healthcheck.self_link}"] 
} 

resource "google_compute_health_check" "elasticsearch-healthcheck" { 
    name    = "elasticsearch-healthcheck" 
    check_interval_sec = 5 
    timeout_sec  = 5 

    tcp_health_check { 
    port = "9200" 
    } 
}