마짱짱의 지식창고

[Terraform] Associate 준비(5) - Module 과 상호작용 본문

Automation/Terraform

[Terraform] Associate 준비(5) - Module 과 상호작용

마짱짱 2021. 7. 22. 15:46
반응형

Module 찾기 및 사용

모듈을 찾을 땐 Terraform Registry 를 주로 이용합니다.

 

Module을 사용할땐 

Terraform Registry : <NAMESPACE>/<NAME>/<PROVIDER> 

개인 Registry : <HOSTNAME>/<NAMESPACE>/<NAME>/<PROVIDER>

module "gcloud" {
  source  = "terraform-google-modules/gcloud/google"
  version = "3.0.0"
}

Module Block

모듈은 함께 사용되는 여러 리소스에 대한 컨테이너 입니다.

모든 Terraform 구성에는 기본 작업 디렉토리의 .tf파일에 정의된 리소스로 구성된 루트 모듈로 알려진 모듈이 하나 이상 있습니다.

 

모듈은 다른 모듈을 호ㅜㄹ할 수 있으며 ,이를 통해 하위 모듈의 리소스를 구성에 간략하게 포함할 수 있습니다.

모듈은 동일한 구성 내에서 또는 별도의 구성으로 여러 번 호출할 수도 있으므로 리소스 구성을 패키징 하고 재사용할 수 있습니다.

 

Module을 호출 한다는 것은 입력 변수에 대한 특정 값이 있는 구성에 해당 모듈의 내용을 포함하는 것을 의미합니다.

module "servers" {
  source = "./app-cluster"

  servers = 5
}

이와 같은 방법으로 자식 Module을 호출 합니다.

souce : 모든 모듈에 대해 필수 사항입니다.

version : registry의 module에 권장사항 입니다.

meta arg

  • count- 단일 module블록 에서 모듈의 여러 인스턴스를 생성합니다 . 
  • for_each- 단일 module 블록 에서 모듈의 여러 인스턴스를 생성합니다 . 
  • providers- 공급자 구성을 자식 모듈에 전달합니다. 지정하지 않으면 자식 모듈은 호출 모듈에서 모든 기본(별칭 없는) 공급자 구성을 상속합니다.
  • depends_on- 전체 모듈과 나열된 대상 간에 명시적 종속성을 생성합니다. 
반응형