마짱짱의 지식창고
[Terraform] Associate 준비(4) - Terraform CLI 본문
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
'Automation > Terraform' 카테고리의 다른 글
[Terraform] Associate 준비(6) - Terraform Workflow (0) | 2021.07.22 |
---|---|
[Terraform] Associate 준비(5) - Module 과 상호작용 (0) | 2021.07.22 |
[Terraform] Associate 준비(3) - Terraform 기초(Provider, Provisioners) (0) | 2021.07.22 |
[Terraform] Associate 준비(2) - Terraform State 의 목적, Remote State (0) | 2021.07.21 |
[Terraform] Associate 준비(1) - IaC코드 이해하기 (0) | 2021.07.21 |