1. init : 초기화
terraform init
- 모듈 : 테라폼이 실행되는 디렉토리 - tf 파일, 변수 정의 파일(tfvars) 포함
- 루트 모듈 : 기본 작업 디렉터리에 정의된 파일 집합, 다른 모듈 호출 가능
- 자식 모듈 : 루트 모듈이 호출하는 다른 모듈
2. validate : 유효성 체크
terraform validate
- 테라폼 파일(.tf) 유효성 체크 - 문법검사
3. plan : 실행 계획 생성
terraform plan
- apply 하기 전에 이상적인 상태와 실제 상태를 비교해 둘을 동일하게 만들기 위해서 해야할 일을 찾아내는 작업
terraform plan -out=tfplan
- 실행 계획 별도 저장(파일 생성)
- 실행 계획 파일은 확장자 없이 사용
terraform plan -destroy -out=tf-rm-plan
4. apply : 적용
terraform apply
- 실제 상태를 이상적인 상태와 동일하게 만드는 것
- 계획 파일 지정 없이 실행시, 자동으로 plan 실행 후 apply 진행
terraform apply tfplan
- 계획 파일 기반으로 apply - (yes/no 질문 X)
terraform apply -replace=local_file.txt
terraform apply -replace=aws_instance.example
- replace : 특정 리소스 재생성 옵션 (삭제후 재생성)
5. destroy : 모든 개체 제거
terraform destroy # = terraform apply -destroy
- 계획 파일 지정 없이 실행시, 자동으로 plan 실행 후 destroy 진행
terraform destroy -auto-approve
- auto-approve : 자동 승인 옵션 (yum install -y라고 생각)
-> 조심하여 사용
6. fmt : 구성 파일(.tf) 표준 스타일 적용
terraform fmt
- tf 파일에 작성된 테라폼 코드 가독성을 높이는 작업
- 정렬, 빈칸, 내려쓰기 등의 규칙이 다른 경우 사용
- 최종적으로 코드 공유 시스템에 업로드전 실행하여 코드 중복 처리 및 업데이트 최소화
terraform fmt -recursive
- recursive : 하위 디렉토리의 구성 파일 모두 포함 적용
그 외 명령어
console : 기능 및 문법 확인
state : 상태 관리
workspace : 작업 공간 관리
import : 상태 가져오기
- 테라폼 코드로 생성되지 않은 리소스를 관리하기 위해 상태를 가져오기
출처 : [한빛미디어] 테라폼으로 시작하는 IaC