마짱짱의 지식창고

[Terraform] Associate 준비(4) - Terraform CLI 본문

Automation/Terraform

[Terraform] Associate 준비(4) - Terraform CLI

마짱짱 2021. 7. 22. 14:11
반응형

Command: fmt

이 명령어는 Terraform 구성 파일을 표준 형식 및 스타일로 다시 작성하는데 사용됩니다.

즉, 중구난방으로 작성하여 실행하게 작성하였을 때 해당 명령어를 사용하면 깔끔하게 정리됩니다.

 

커맨드라인에 작성하면 됩니다.

terraform fmt

기본문법 : terraform fmt [options] [DIR]

flag :

-list=false : 형식이 불일치가 있는 파일을 나열하지 않습니다.

-wirte=false : 입력 파일을 덮어 쓰지 않습니다.

-diff : 서식 변경사항 표시

-check : 입력치 포맷되어 있는지 확인합니다. (모든 입력의 형식이 올바른 경우 종료상태는 0이 되고, 그렇지 않은 경우 종료상태는 0이 아닙니다)

-recursive : 하위 디렉토리에서도 처리합니다


Command: taint

해당 명령어를 통해 바꾸지 않을 것을 설정합니다.

해당 명령어느 Terraform v0.15.2 이상에선 하용하지 않습니다.


Command: import

기존 구성되어있는 Resource를 가져오는데 사용됩니다.

terraform import [options] ADDRESS ID

import 는 ID에서 기존 리소스를 찾아 지정된 Address의 Terraform State를 가져옵니다.

 

 

 

Flag:

  • -config=path- 가져올 공급자를 구성하는 Terraform 구성 파일의 디렉터리 경로입니다. 이것은 기본적으로 작업 디렉토리로 설정됩니다. 이 디렉토리에 Terraform 구성 파일이 없으면 수동 입력 또는 환경 변수를 통해 공급자를 구성해야 합니다.
  • -input=true - 공급자 구성에 대한 입력을 요청할지 여부입니다.
  • -lock=false- 작업 중 상태 잠금을 유지하지 마십시오. 다른 사용자가 동일한 작업 공간에 대해 동시에 명령을 실행할 수 있는 경우 위험합니다.
  • -lock-timeout=0s - 상태 잠금을 재시도하는 기간입니다.
  • -no-color - 지정하면 출력에 색상이 포함되지 않습니다.
  • -parallelism=n- Terraform 이 그래프를 따라가면서 동시 작업의 수를 제한합니다 . 기본값은 10입니다.
  • -provider=provider- 더 이상 사용되지 않음 개체를 가져올 때 사용할 공급자 구성을 재정의합니다. 기본적으로 Terraform은 대상 리소스에 대한 구성에 지정된 공급자를 사용하며 이것이 대부분의 경우 최상의 동작입니다.
  • -var 'foo=bar'- Terraform 구성에서 변수를 설정합니다. 이 플래그는 여러 번 설정할 수 있습니다. 변수 값은 Terraform 언어에서 리터럴 표현식 으로 해석 되므로 이 플래그를 통해 목록 및 맵 값을 지정할 수 있습니다. 이것은 -config플래그 에만 유용합니다 .
  • -var-file=foo- 변수 파일 에서 Terraform 구성의 변수를 설정합니다 . 경우 terraform.tfvars또는 .auto.tfvars파일이 현재 디렉토리에 존재하는, 그들은 자동으로로드됩니다. terraform.tfvars가 먼저 로드되고 .auto.tfvars파일이 알파벳 순서 로 로드 됩니다. 로 지정된 모든 파일 -var-file은 작업 디렉토리의 파일에서 자동으로 설정된 값  재정의합니다. 이 플래그는 여러 번 사용할 수 있습니다. 이것은 -config플래그 에만 유용합니다 .

 

현재 Import를 할땐 하나의 리소스 주소에만 가져올 수 있습니다.


Workspace

Terraform이 실행되는 '작업공간'으로 이해하면 좋을 것같습니다.

기본적으로 'deafult'라는 단일 작업공간으로 존재하고 있습니다.

이 것은 기본값이고 삭제할 수 없습니다. 따로 설정한 것이 없다면 "default"workspace에서 작업한 것 입니다.

 

새로운 작업공간을 만들고 싶다면 아래 명령어를 기입하면 됩니다.

terraform workspace new [NAME]

 

또한 작업 공간을 전환하려면 아래 명령어를 기입하면 됩니다.

terraform workspace select [NAME]

 

 


State Command

이 명령어는 고급 상태 관리에 사용됩니다.

terraform state <subcommand> [options] [args]

Debugging Terraform

Terraform에는 TF_LOG 환경변수를 임의 값으로 설정하여 활성화 할 수 있는 자세한 로그가 있습니다.

그러면 stderr에 자세한 로그가 표시됩니다.

 

TRACE, DEBUG, INFO, WARN, ERROR 를 통해 로그의 상세내용을 변경할 수 있씁니다

TF_LOG_CORE 또는TF_LOG_PROVIDER 환경변수를 사용하여 terraform 자체와 제공자 플러그인에 대해 별도로 로깅을 활성화 할 수 있습니다. 

 

로깅된 출력을 유지하려면 TF_LOG_PATH 로깅이 활성화 된 경우 로그가 항상 특정 파일에 추가되도록 설정할 수 있습니다.

TF_LOG_PATH가 설정된 경우 TF_LOG에도 로깅을 활성화 해줘야 합니다.

 

 


출처

https://www.terraform.io/docs/language/syntax/style.html  

https://www.terraform.io/docs/cli/commands/taint.html  

https://www.terraform.io/docs/cli/commands/import.html

https://www.terraform.io/docs/language/state/workspaces.html

https://www.terraform.io/docs/cli/commands/state/index.html

https://www.terraform.io/docs/internals/debugging.html

 

 

 

반응형