인프라를 Microsoft Azure 클라우드에 배포 하기위한 Terragrunt 스크립트 를 빌드하려고합니다 . 일이 꽤 잘 작동하지만 한 가지를 알아낼 수 없습니다.
설정 구조는 다음과 같습니다.
rootdir
terragrunt.hcl
someconfig.hcl
module1dir
terragrunt.hcl
config.auto.tfvars.json
module2dir
terragrunt.hcl
config.auto.tfvars.json
module3dir
terragrunt.hcl
config.auto.tfvars.json
각 모듈은 .NET과 함께 Terraform 자동로드 tfvars 기능을 사용하여 구성됩니다 config.auto.tfvars.json
. 내가 원하는 것은 이러한 파일을 디렉토리 구조 외부에두고 어떻게 든 Terragrunt에 올바른 외부 구성 파일을 올바른 하위 모듈에 적용하도록 지시하는 것입니다.
어떤 아이디어?
나는 이것을 다음과 같은 방식으로 해결했습니다.
구성 파일에 대한 위치를 포함해야하는 사용하려는 환경 변수를 정의하십시오. 기존의 것과 충돌하지 않는지 확인하십시오. 이 예에서는 TGR_CFGDIR 을 사용 합니다 . 외부 구성 모듈에 모듈 구성 파일을 배치하고 이름이 올바른지 확인하십시오. 각 파일은 모듈로 이름을 지정하고 .auto.tfvars.json
. 따라서 모듈 이름이 foo이면 config file이 있어야합니다 foo.auto.tfvars.json
. terragrunt 모듈 (terragrunt.hcl)을 다음 명령문을 갖도록 변경하십시오.
locals {
moduleconfig = get_env("TGR_CFGDIR")
modulename = basename(get_terragrunt_dir())
}
generate "configuration" {
path = "config.auto.tfvars.json"
if_exists = "overwrite"
disable_signature = true
contents = file("${local.moduleconfig}/${local.modulename}.auto.tfvars.json")
}
마지막으로 다음과 같이 terragrunt cli를 호출합니다.
TGR_CFGDIR="<configdir>" terragrunt "<somecommand>"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다