consul 백엔드

consul 백엔드

HashiCorp Consul KV 스토어에 Terraform state를 저장하는 consul 백엔드를 설명해 드릴게요. Consul의 KV(키-값) 스토어를 활용해 state를 관리해요.

출처: 문서

본문

consul 백엔드는 Consul KV 스토어의 주어진 경로에 state를 저장해요. 이 백엔드는 state 잠금을 지원해요.

예시 구성 (Example Configuration)

terraform {
  backend "consul" {
    address = "consul.example.com"
    scheme  = "https"
    path    = "full/path"
  }
}

접근 자격 증명에는 부분 구성(partial configuration)을 권장해요.

데이터 소스 구성 (Data Source Configuration)

data "terraform_remote_state" "foo" {
  backend = "consul"
  config = {
    path = "full/path"
  }
}

구성 변수 (Configuration Variables)

경고: 자격 증명과 기타 민감 데이터를 제공할 때는 환경 변수를 사용하는 것을 권장해요. -backend-config를 사용하거나 이런 값을 구성에 직접 하드코딩하면 Terraform이 .terraform 하위 디렉터리와 plan 파일 양쪽에 이 값을 포함해요. 자세한 내용은 Credentials and Sensitive Data를 참고해요.

지원하는 구성 옵션 / 환경 변수:

  • path - (필수) Consul KV 스토어의 경로.
  • access_token / CONSUL_HTTP_TOKEN - (필수) 접근 토큰.
  • address / CONSUL_HTTP_ADDR - (선택) dnsname:port 형식으로 지정한 Consul 엔드포인트의 DNS 이름과 포트. 기본값은 로컬 에이전트 HTTP 리스너.
  • scheme - (선택) 주어진 address와 통신할 때 사용할 프로토콜. http 또는 https. SSL 지원은 CONSUL_HTTP_SSL 환경 변수를 true로 설정해도 트리거할 수 있어요.
  • datacenter - (선택) 사용할 데이터센터. 기본값은 에이전트의 그것.
  • http_auth / CONSUL_HTTP_AUTH - (선택) Consul과 통신할 때 사용할 HTTP Basic Auth 자격 증명. user 또는 user:pass 형식.
  • gzip - (선택) true면 state 데이터를 gzip으로 압축하고, false(기본값)면 압축하지 않아요.
  • lock - (선택) false로 설정하면 잠금을 비활성화해요. 기본값은 true이며, 잠금을 수행하려면 Consul에 세션 권한과 $path/.lock에 대한 최소 kv 쓰기 권한이 필요해요.
  • ca_file / CONSUL_CACERT - (선택) 원격 에이전트의 인증서를 검증하는 데 사용하는 PEM 인코딩 인증 기관의 경로.
  • cert_file / CONSUL_CLIENT_CERT - (선택) 원격 에이전트에 제공하는 PEM 인코딩 인증서의 경로. key_file 사용이 필요해요.
  • key_file / CONSUL_CLIENT_KEY - (선택) PEM 인코딩 개인 키의 경로. cert_file을 지정하면 필요해요.

더 알아보기 (Learn more)