terraform taint 커맨드

terraform taint 커맨드

terraform taint 커맨드는 Terraform 상태의 지정된 객체를 오염(taint)된 것으로 표시해요. 객체가 저하되거나 손상되었을 때 이 커맨드를 사용해요. 그러면 Terraform은 다음에 만드는 플랜에서 오염된 객체를 교체하라고 안내해요. 이 커맨드는 더 이상 사용되지 않으며(deprecated), 대신 terraform apply 커맨드-replace 옵션을 추가하세요.

출처: 문서

본문

terraform taint 커맨드는 Terraform 상태의 지정된 객체를 오염된 것으로 표시해요. 객체가 저하되거나 손상되었을 때 사용하세요. Terraform은 다음에 만드는 플랜에서 오염된 객체를 교체하라고 안내해요.

이 커맨드는 더 이상 사용되지 않습니다(deprecated). 대신 terraform apply 커맨드-replace 옵션을 추가하세요.

Terraform v0.15.2 이상에서는 설정 변경이 필요하지 않은 상황에서도 객체 교체를 강제하려면 terraform apply와 함께 -replace 옵션을 사용하는 것을 권장해요.

$ terraform apply -replace="aws_instance.example[0]"

-replace 옵션을 권장하는 이유는 변경 사항이 Terraform 플랜에 반영되어, 외부적으로 보이는 조치를 취하기 전에 인프라에 어떤 영향을 미칠지 이해할 수 있기 때문이에요. terraform taint를 사용하면, 다른 사용자가 효과를 검토하기 전에 오염된 객체를 상대로 새 플랜을 만들 수 있어요.

사용법 (Usage)

$ terraform taint [options] <address>

address 인자는 오염으로 표시할 리소스의 주소예요. 주소는 다른 커맨드의 출력에서 볼 수 있는 리소스 주소 문법을 사용해요. 예:

이 커맨드는 다음 옵션을 받아요:

  • -allow-missing - 지정하면 리소스가 없어도 커맨드가 성공(종료 코드 0)해요. 상태를 읽거나 쓰는 데 문제가 있는 등 다른 상황에서는 여전히 오류를 반환할 수 있어요.

  • -lock=false - 작업 기간 동안 상태에 대한 읽기/쓰기 잠금을 시도하는 Terraform의 기본 동작을 비활성화해요.

  • -lock-timeout=DURATION - -lock=false로 잠금을 비활성화하지 않았다면, 오류를 반환하기 전에 일정 시간 동안 잠금 획득을 재시도하도록 Terraform에 지시해요. 기간 문법은 숫자 뒤에 시간 단위 문자를 붙인 형태예요. 예: 3초는 "3s".

  • -var 'NAME=VALUE' - 설정의 루트 모듈에 선언된 단일 입력 변수에 값을 설정해요. 여러 변수를 설정하려면 이 옵션을 여러 번 사용하세요. 자세한 내용은 명령줄의 입력 변수를 참고하세요.

  • -var-file=FILENAME - 설정의 루트 모듈에 선언된 많은 입력 변수.tfvars 파일의 정의를 사용해 값을 설정해요. 여러 파일의 값을 포함하려면 이 옵션을 여러 번 사용하세요. 루트 모듈의 입력 변수에 값을 설정하는 방법은 -var-var-file 옵션 외에도 여러 가지가 있어요. 자세한 내용은 입력 변수에 값 할당을 참고하세요.

HCP Terraform CLI 통합 또는 remote 백엔드를 사용하는 설정에서만 terraform taint-ignore-remote-version 옵션도 받아요. 로컬 백엔드를 사용하는 설정에서만 terraform taint는 레거시 옵션 -state, -state-out, -backup도 받아요.

더 알아보기 (Learn more)