본문 바로가기

개발하자

적용 변경 없이 Terraform 상태를 업데이트하는 방법

반응형

적용 변경 없이 Terraform 상태를 업데이트하는 방법

시나리오는 다음과 같다:

  • IAM, Instance 등 많은 테라폼 파일이 있는 저장소를 하나 보유하고 있습니다
  • 이 저장소를 두 개로 분할해야 합니다(IAM 구성은 테라폼 상태를 다른 버킷에 저장하는 다른 저장소로 마이그레이션됩니다)

그래서 IAM 구성 상태를 추가하여 이 새 저장소에 대한 상태를 업데이트하고 이전 저장소에서 IAM 상태를 삭제하고 싶지만 이전 저장소에서 모든 구성을 삭제한 다음 모두 다시 만들어야 하므로 인프라스트럭처에 변경 사항을 적용하고 싶지 않습니다.

적용 변경 없이 상태를 업데이트할 수 있는 방법이 있나요?




가장 좋은 방법은 각각 새로운 상태 파일을 저장하는 새로운 저장소를 만드는 것이다. 이전 repo에서 생성된 리소스가 "repo1.tfstate"라는 상태로 저장된다고 가정해 보겠습니다. 그런 다음 여기서 repo1에서 분리된 것을 원하는 새로운 repo를 만듭니다. 그런 다음 테라폼 가져오기를 사용하여 리소스를 repo2로 가져올 수 있습니다. 방금 repo1에서 가져온 리소스를 테라폼 starm으로 제거하는 것을 잊지 마세요.

또 다른 방법은 terraform state pull > state-for-repo-2.tf state를 하고 그것을 수동으로 편집하여 repo2에 넣고 terraform state push를 하는 것일 것이다. 물론 repo1에 대해서도 상태를 편집해야 할 것입니다. 하지만 테라폼 상태 푸시는 원래 상태 파일을 덮어쓸 것이란 걸 알아둬...




테라폼 상태 수술을 해야 할 것 같아요 상태 파일을 뽑고 업데이트하고 다시 밀어요. 또는 리소스를 삭제하지 않고 이동합니다.

https://developer.hashicorp.com/terraform/tutorials/configuration-language/move-config#move-your-resources-with-the-moved-configuration-block


반응형