terraform stacks migrate translate-state 명령
terraform stacks migrate translate-state 명령
terraform stacks migrate translate-state 명령은 Terraform 상태 파일을 Terraform Stack 상태 산출물로 변환하는 명령이에요. 전통적인 구성을 Stack 구성으로 번역한 뒤, 그 구성 레이아웃에 맞는 상태 산출물이 필요할 때 사용해요.
출처: 문서
본문
실험적 기능:
terraform stacks migrate명령 그룹은 실험적이며 기본적으로 비활성화되어 있어요. 이 명령들을 활성화하려면TF_STACKS_MIGRATE_EXPERIMENTAL=true를 설정해야 해요. 프로덕션 리소스에는 이 명령들을 사용하지 마세요.
사용법 (Usage)
$ TF_STACKS_MIGRATE_EXPERIMENTAL=true terraform stacks <global-stacks-flags> migrate translate-state <options>
상대 경로는 -chdir 적용 후 작업 디렉터리를 기준으로 해석돼요.
설명 (Description)
전통적인 구성을 Stack 구성으로 번역한 뒤, 번역된 구성 레이아웃과 일치하는 상태 산출물이 필요할 때 terraform stacks migrate translate-state를 사용해요.
이 명령은 마이그레이트 매니페스트를 받아 매니페스트에 선언된 모든 배포를 번역하거나, 명시적 경로를 받아 하나의 Terraform 상태 파일을 번역할 수 있어요. 명시적 경로를 사용하면 이 명령은 다음 파일들을 읽어요.
- 전통적인 Terraform 상태 파일
- 원래
.tfstate파일을 만든 원래 Terraform 루트 모듈 - 대상 컴포넌트와 배포를 포함하는 번역된 Stack 구성
이 명령은 번역된 Stack 구성과 함께 사용할 수 있는 .tfstackstate 산출물을 작성해요.
이 명령은 로컬 파일에서만 동작해요. Stack을 생성하거나, 구성을 업로드하거나, 원격 상태를 자동으로 이동하지는 않아요.
명령을 실행하기 전에 다음 요구 사항을 충족해야 해요.
- 이 명령이
.terraform.lock.hcl의존성 잠금 파일과 설치된 프로바이더 캐시를 재사용할 수 있도록 원래 Terraform 구성 디렉터리에서terraform init을 실행해요. - 번역된 Stack 구성이 이미 로컬에 존재해야 해요.
- 명령이 번역된 컴포넌트 소스에 필요한 초기화된 로컬 모듈 번들을 사용할 수 있도록 번역된 Stack 구성 디렉터리에서
terraform stacks init을 실행해요. - 번역된 Stack 구성은
-stack-config아래에서 자체 포함(self-contained)되어야 해요. 컴포넌트 소스와 중첩된 로컬 모듈 소스는 해당 디렉터리 트리 안에서 해석되어야 해요. - 각 생성된
.tfstackstate출력 경로는 존재하는 쓰기 가능한 디렉터리를 가리키고 사용하지 않은 파일 이름을 사용해야 해요.
성공 시 사람이 읽기 좋은 출력은 출력 경로, 컴포넌트 수, 리소스 수, 출력 값 수를 포함해요. JSON 출력은 이 요약에 더해 컴포넌트 주소, 리소스 유형 수, 프로바이더 주소, 출력 이름(존재할 때)을 포함해요.
옵션 (Options)
-migrate-manifest: 매니페스트에 선언된 모든 배포를 번역할 마이그레이트 매니페스트 경로.-tfstate,-source-config,-stack-config,-output와 상호 배타적이에요.- 선택 사항.
- 문자열.
-tfstate: 번역할 전통적인.tfstate파일의 경로.- 명시적 상태 파일 경로를 제공하면 필수.
- 문자열.
-source-config: 원래.tfstate파일을 만든 원래 Terraform 루트 모듈이 들어 있는 디렉터리.- 명시적 상태 파일 경로를 제공하면 필수.
- 문자열.
-stack-config: 번역된 Stack 구성이 들어 있는 디렉터리. 컴포넌트 및 배포 구성 파일을 포함해야 해요. 모든 컴포넌트 소스와 중첩된 로컬 모듈 소스는 이 디렉터리 트리 안에서 해석되어야 해요.- 명시적 상태 파일 경로를 제공하면 필수.
- 문자열.
-output: 번역된 Stack 상태 산출물을 작성할 경로. 상위 디렉터리가 이미 존재하고 쓰기 가능해야 해요. 출력 파일은 이미 존재해서는 안 돼요. 이 명령은 기존 산출물을 덮어쓰지 않아요.- 명시적 상태 파일 경로를 제공하면 필수.
- 문자열.
-json: 기본적인 사람이 읽기 좋은 텍스트 형식 대신 JSON 형식으로 결과를 출력함.- 선택 사항.
- Boolean 플래그.
- 기본값: false.
예시 (Examples)
다음 명령은 기본 마이그레이트 매니페스트에 선언된 모든 상태 파일을 번역해요.
$ TF_STACKS_MIGRATE_EXPERIMENTAL=true terraform stacks migrate translate-state
다음 명령은 특정 마이그레이트 매니페스트에 선언된 상태 파일을 번역해요.
$ TF_STACKS_MIGRATE_EXPERIMENTAL=true terraform stacks migrate translate-state \
-migrate-manifest=./migration/migrate-manifest.json
다음 명령은 하나의 Terraform 상태 파일을 Terraform Stack 상태 산출물로 번역해요.
$ TF_STACKS_MIGRATE_EXPERIMENTAL=true terraform stacks migrate translate-state \
-tfstate=./workspace.tfstate \
-source-config=./terraform \
-stack-config=./stack \
-output=./out/workspace.tfstackstate
다음 명령은 상태 파일을 번역하고 결과 요약을 JSON 형식으로 반환해요.
$ TF_STACKS_MIGRATE_EXPERIMENTAL=true terraform stacks migrate translate-state \
-tfstate=./workspace.tfstate \
-source-config=./terraform \
-stack-config=./stack \
-output=./out/workspace.tfstackstate \
-json
전역 플래그 (Global flags)
모든 명령에서 공통으로 사용할 수 있는 플래그에 대한 정보는 Global flags reference 문서를 참고해 주세요.
더 알아보기 (Learn more)
- HCP Terraform 워크스페이스를 Terraform Stacks로 마이그레이션하기
- terraform stacks migrate prepare-manifest 명령
- terraform stacks migrate validate-manifest 명령
- terraform stacks migrate 명령