2016-10-13 1 views

답변

0

그것은 기술적으로는 관련 기능을 제공하여 실행 의미에서 수행합니다

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

불행하게도, 그것은에 대한 설명서가 아주 가난과 기능의 배치의 의미 상호 의존적 인 건강 검사, 대상 풀, 백엔드 처리기 및 전달 규칙을 설정하여 나머지 작업을 수행하는 것과는 매우 다른 점이 다릅니다. terraform planapply에 표시된 오류 메시지도 오히려 도움이되지 않습니다.

현재 수동으로 설정 한 기존로드 밸런서를 복제하는 environment.tf을 설치하려고하는데 심각한 시행 착오로 입증되었습니다. Hashicorp는 문서에 더 많은 사용 사례와 설명을 추가해야합니다.

1

2017 년 9 월 현재, 확실히 그렇습니다! 불행히도 그 문서는 그리 좋지 않습니다.

매우 거친 예입니다. 복사/붙여 넣기를 통해서만 작동하지 않을 수 있습니다!

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" 
    } 
}