Terraform에서 state migration을 잘못 사용할 때의 대책
Terraform의 state가 다른 걸 물려받았어요.
state와provider의 설정 등은 기본적으로 어느 디렉터리든 함께 있기 때문에 기본적으로 파일에 따라 복사하고 state의 키만 변경
terraform init
합니다.이번에state 열쇠를 바꾸는 것을 잊어버리고 먼저 갔다
terraform init
.플랜 단계에서 의외로 삭제된 자원도 있고 눈에 띄는 도형도 있지만 응용에 주의하지 않은 자원도 있다.
state의migration 발생 모드, 발생하지 않기 위한 모드
특히 아무것도 안 하고 다시 init를 하면 migration의 확인을 받을 수 있어요.
s3의 키만 변경된 상태에서
terraform init
하면 새 state의migration 여부를 확인합니다.init이기 때문에 문제없습니다. yes라면 migration에 의해 자원을 잘못 삭제할 수 있습니다.
여기서migration을 진행하면 여러 개의 작업장이 있으면 모든 작업장의state에서migration을 진행합니다.
~/g/s/g/r/s/s/t/test ❯❯❯ terraform init ✘ 1 Vmaster ✭ ◼
Initializing the backend...
Backend configuration changed!
Terraform has detected that the configuration specified for the backend
has changed. Terraform will now check for existing state in the backends.
Do you want to migrate all workspaces to "s3"?
Both the existing "s3" backend and the newly configured "s3" backend
support workspaces. When migrating between backends, Terraform will copy
all workspaces (with the same names). THIS WILL OVERWRITE any conflicting
states in the destination.
Terraform initialization doesn't currently migrate only select workspaces.
If you want to migrate a select number of workspaces, you must manually
pull and push those states.
If you answer "yes", Terraform will migrate all states. If you answer
"no", Terraform will abort.
Enter a value:
이번처럼migration을 잘못 진행한 경우 s3 파일을 모두 삭제하거나state를 모두 삭제할 수 있습니다.NO를 선택하더라도 워크스페이스의 정보는 상속된다.
. terraform 이하 삭제 후 init
완전히 새로운 평소와 같은 상태이기 때문에 이번 같은 상황에서 init라면 이 방법을 사용하는 것이 좋다.
대책 방법
상술한 migration의 발생 조건을 파악함으로써 이번 사건의 발생을 방지할 수 있다.
또한migration이라면 의식 단계에서 필요없는state를 삭제하면 적당한 상태로 회복할 수 있다.
Reference
이 문제에 관하여(Terraform에서 state migration을 잘못 사용할 때의 대책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ptpadan/articles/terrform-state-migration텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)