Terragrunt
Terragrunt는 Terraform과 OpenTofu를 위한 래퍼로, 설정을 DRY하게 유지하고 모듈 간 의존성 을 관리합니다. Semaphore는 Terraform/OpenTofu와 동일한 방식으로 Terragrunt를 실행하며, 여기에 설명된 몇 가지 차이점이 있습니다.
사전 요구 사항
- 작업을 실행하는 Semaphore 서버 또는 러너에
terragrunt바이너리와terraform또는tofu바이너리를 설치하십시오. - Terragrunt Code 애플리케이션을 활성화하십시오. 기본적으로 비활성화되어 있습니다. 계정 메뉴에서 애플리케이션을 열고 스위치를 켜십시오. 애플리케이션을 참조하십시오.
Terragrunt 템플릿 생성
- 작업 템플릿으로 이동하여 새 템플릿을 클릭합니다.
- 앱으로 Terragrunt Code를 선택합니다.
- 리포지토리와
terragrunt.hcl이 있는 하위 디렉터리를 설정합니다. - 인벤토리 필드에서 워크스페이스를 선택하거나 생성합니다. Terragrunt 템플릿은
terragrunt-workspace유형의 인벤토리를 사용합니다. 워크스페이스를 참조하십시오. - 생성을 클릭한 다음 실행을 클릭합니다.

작업 실행
새 작업 대화 상자는 Terraform과 동일한 옵션을 제공합니다: Plan, Destroy, Auto Approve, Upgrade, Reconfigure.
Semaphore는 terragrunt run -- <terraform arguments>를 호출하고, 템플릿의 CLI 인수에 이미 --tf-path를 설정하지 않은 경우 --tf-path로 Terraform 또는 OpenTofu 바이너리를 전달합니다. 워크스페이스 선택은 terragrunt run -- workspace select -or-create=true <name>으로 수행됩니다.
선택한 변수 그룹의 변수는 환경 변수로 전달되므로 입력 변수에는 TF_VAR_ 접두사를 사용하십시오. 추가 변수와 설문 변수는 -var name=value 인수로 전달됩니다.
참고 사항
terragrunt는 모든 명령 전에init을 자동으로 실행합니다.- HTTP 상태 백엔드와 워크스페이스 탭의 상태 목록은 Terraform과 동일하게 동작합니다. HTTP 백엔드를 참조하십시오.
- 여러 모듈에 걸쳐
run-all을 사용하려면 템플릿의 CLI args에 해당 인수를 추가하십시오.