terraform providers mirror 커맨드

terraform providers mirror 커맨드

terraform providers mirror 커맨드는 현재 설정에 필요한 프로바이더를 다운로드해서 로컬 파일시스템의 디렉터리에 복사해요. 일반적인 사용에서는 terraform init이 현재 작업 디렉터리 초기화의 일부로 프로바이더 레지스트리에서 필요한 프로바이더를 자동으로 다운로드해요.

출처: 문서

본문

일반적인 사용에서는 terraform init이 현재 작업 디렉터리 초기화의 일부로 프로바이더 레지스트리에서 필요한 프로바이더를 자동으로 다운로드해요. 하지만 Terraform을 그렇게 할 수 없는 환경(예: Terraform Registry에 접근할 수 없는 격리된 네트워크)에서 실행하는 경우도 있어요. 그런 경우 명시적 설치 방법 설정으로, 특정 시스템에서 실행할 때 Terraform이 필요한 플러그인의 로컬 미러를 만든 로컬 파일시스템 디렉터리만 참조하고 업스트림 레지스트리에는 전혀 접근하지 않도록 구성할 수 있어요.

terraform providers mirror 커맨드는 프로바이더 설치 설정에서 로컬 파일시스템 미러로 사용될 디렉터리를 자동으로 채울 수 있어요.

terraform providers mirror는 Terraform v0.13 이상에서만 사용할 수 있어요.

사용법 (Usage)

사용법: terraform providers mirror [options] <target-dir>

단일 대상 디렉터리가 필요해요. Terraform은 그 디렉터리 아래에 파일시스템 기반 프로바이더 플러그인 미러에 기대되는 경로 구조를 만들고, 플러그인 자체를 포함하는 .zip 파일들로 채워요.

또한 Terraform은 결과 디렉터리를 정적 웹사이트 호스트에 업로드할 경우 네트워크 미러 프로토콜을 구현하기 위한 적절한 응답을 포함하는 여러 .json 인덱스 파일도 생성해요. Terraform은 디렉터리를 파일시스템 미러로 사용할 때는 그 인덱스 파일들을 무시해요. 그 경우 디렉터리 항목 자체가 권위 있는 값이기 때문이에요.

이 커맨드는 다음 추가 옵션을 지원해요:

  • -platform=OS_ARCH - 미러를 만들 대상 플랫폼을 선택해요. 기본적으로 Terraform은 이 커맨드를 실행하는 플랫폼에 적합한 플러그인 패키지를 얻어요. 여러 대상 시스템의 패키지를 포함하려면 이 플래그를 여러 번 사용하세요. 대상 플랫폼 이름은 운영 체제와 CPU 아키텍처로 구성돼요. 예를 들어 linux_amd64는 AMD64 또는 x86_64 CPU에서 실행되는 Linux 운영 체제를 선택해요.

  • -lock-file=true - 프로바이더를 가져올 때 프로바이더 잠금 파일을 무시하려면 false로 설정해요. 기본값(true)에서는 구성 디렉터리가 이전에 초기화된 경우 미러 커맨드가 잠금 파일의 버전 정보를 사용해요.

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

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

기존 미러 디렉터리에서 terraform providers mirror를 다시 실행해서 새 패키지로 갱신할 수 있어요. 예를 들어, 원하는 새 -platform=... 옵션으로 커맨드를 다시 실행하면 새 플랫폼의 패키지를 추가할 수 있어요. 이때 이전에 다운로드한 패키지는 제거하지 않고, 결과 패키지 집합을 병합해서 JSON 인덱스 파일을 갱신해요.

더 알아보기 (Learn more)