Ssoon

Chapter (03) 기본 사용법 - 주요 커맨드 본문

Terraform 101 Study 2기

Chapter (03) 기본 사용법 - 주요 커맨드

구구달스 2023. 7. 4. 23:18
CloudNet@ 가시다님이 진행하는 Terraform 101 Study 2기
"테라폼으로 시작하는 IaC" (한빛미디어) 도서로 진행!

 

  • workspaces > 03.start > main.tf 를 생성합니다.
  • 실습용 코드를 작성합니다.
resource "local_file" "abc" {
content = "abc!"
filename = "${path.module}/abc.txt"
}

✅ init

  • 테라폼 구성 파일이 있는 작업 디렉터리 초기화 
  • 테라폼에서 사용되는 프로바이더, 모듈 등의 지정된 버전에 맞춰 루트 모듈을 구성
  • 구성에서 필요한 의존성 정의를 읽고, 최초 실행 시 실행에 필요한 아티팩트나 라이브러리를 다운로드하고 준비
Module : 테라폼이 실행되는 디렉터리
Root Module : 기본 작업 디렉터리의 정의된 파일 집합

  • terraform init을  실행하지 않고 plan 수행 시 init를 먼저 실행하라는 오류 메시지를 확인합니다.

  • terraform init를 실행하면 프로바이더 플러그인을 찾고 설치합니다.
  • 프로바이더 종속성을 고정시키는 .terraform.lock.hcl 이 추가됩니다.

 

✅ validate

  • 테라폼 구성파일의 유효성을 확인합니다.
  • API 작업은 발생하지 않고, 코드적인 유효성만을 검토합니다.

  • main.tf 의 인수 값을 주석처리합니다.
  • local_file 리소스 정의에는 filename이 필수 인수이지만 주석 처리가 되어 해당 정의가 없다는 오류가 발생합니다.

plan & apply

plan : 테라폼으로 적용할 인프라의 변경 사항에 관한 실행 계획을 생성합니다.

  • 테라폼 실행 이전 상태와 비교 > 현재 상태가 최신화 되었는지 확인
  • 적용하고자 하는 구성을 현재 상태와 비교 > 변경점 확인
  • 테라폼 구성에 어떻게 반영되는지 확인

apply : plan 을 기반으로 작업을 실행합니다.


  • terraform plan을 실행합니다.
  • + : 새로 생성된다는 의미의 심볼
  • 어떤 리소스가 생성되는지 상세 내역을 보여줍니다.

  • terraform plan 명령 뒤에 -out=tfplan 을 추가해 실행합니다.
  • -out=<파일명> 형식으로 파일 이름이 정해져 plan 결과가 생성됩니다.

  • 생성된 파일을 terrafor apply 에 붙여 실행합니다.

  • terraform apply를 다시 실행합니다.
  • terraform 은 선언적 구성 관리를 제공 > 멱등성 > 동일한 구성은 다시 실행하거나 변경하지 않습니다.

  • main.tf 에 다음을 추가하고 terraform apply를 실행합니다.
resource "local_file" "def" {
content = "def!"
filename = "${path.module}/def.txt"
}
  • resource "local_file" "abc" 는 변경이 없지만 새로 추가된 resource "local_file" def" 는 새로 생성하겠다는 plan을 출력합니다.

✅ destroy

  • 테라폼 구성에서 모든 개체를 제거합니다.

✅ fmt

  • 테라폼 구성 파일을 표준 형식과 표준 스타일로 적용하는데 사용합니다.
  • terraform fmt 를 실행합니다. 
  • 코드 내의 띄어쓰기, 인수와 등호 인수값이 정렬된 것을 확인할 수 있습니다.

 

 
Comments