Terraform을 사용한 손쉬운 테스트 배포

1757 단어 terraformtestingaws
최근에 저는 Terraform을 사용하여 인프라를 정의해야 했습니다. 저는 CDK에 너무 익숙해서 컨텍스트 설정을 통해 모든 것을 조정할 수 있어서 곧 문제에 부딪혔습니다. 프로젝트를 테스트하기 위해 사본을 배포하려면 어떻게 해야 합니까?

파일 직접 편집



업데이트에 필요한 것은 백엔드와 AWS 프로필뿐이었습니다. 그래서 제가 시도한 첫 번째 방법은 백엔드와 AWS 공급자가 정의된 기본 terraform 파일을 편집하는 것이었습니다. 명백한 문제는 제가 커밋을 자주 하고 보통은 그냥 한다는 것입니다 git commit -a -m ... . 그래서 저는 이러한 변경 사항이 파이프라인에서 실행되어 폭발할 것이라는 것을 알았습니다.

변수는 어떻습니까?



다음 아이디어는 AWS 프로필에 사용할 변수를 사용하는 것이었습니다. 문제는 backend 로 설정해야 하는 local 블록이며 변수를 블록 레이블에 전달할 수 없습니다.

파일 재정의



HashiCorp에는 이에 대한 솔루션이 있습니다: Override Files . 기본적으로 terraform 파일을 편집하는 첫 번째 방법과 동일하게 작동하지만 리포지토리 외부에 보관하기 위해 특수 파일에서 수행됩니다.
*override.tf 파일에 .gitignore를 추가한 다음 같은 이름으로 업데이트하려는 파일 옆에 파일을 추가하되 끝에 _override를 추가합니다. 예를 들어 terraform_override.tf의 설정을 재정의하기 위해 terraform.tf 파일을 만들었습니다.

파일을 만들 때 업데이트할 속성만 정의하면 됩니다. 예제를 계속 진행하면서 다음 재정의 파일을 만들었습니다.

terraform {
  backend "local" {}
}

provider "aws" {
  profile = "my-aws-profile"
}


요약



재정의 파일을 사용하면 로컬 개발을 위한 terraform 설정을 쉽게 업데이트할 수 있습니다. .gitignore 에 쉽게 추가할 수 있는 파일에 저장되므로 저장소에 저장되고 파이프라인에서 실행되는 것에 대해 걱정할 필요가 없습니다.

좋은 웹페이지 즐겨찾기