sudo apt-get update && sudo apt-get install -y gnupg software-properties-common
wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
gpg --no-default-keyring \
--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
--fingerprint
# rsa4096 2020-05-07
# E8A0 32E0 94D8 EB4E A189 D270 DA41 8C88 A321 9F7B
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update
sudo apt-get install terraform
sh> terraform -v
Terraform v1.2.9
on linux_amd64
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
brew update
brew upgrade hashicorp/tap/terraform
choco install terraform
아래 명령어 실행 후 쉘에 다시 접근한다.
terraform -install-autocomplete
terraform -help
terraform -help init
terraform init
validate
명령어는 .tf
코드를 검증한다.
terraform validate
fmt
명령어는 .tf
코드를 포맷팅한다.
# terraform fmt
terraform fmt -diff -recursive
plan
명령어는 인프라에 적용할 변경 사항의 실행 계획을 생성합니다.
현재 구성에 따라 리소스에 적용될 변경 사항의 미리보기를 보여줍니다.
terraform plan
apply
명령어는 Terraform 구성 파일에 설명된 대로 인프라에 변경 사항을 적용합니다.
변경 사항에 따라 리소스를 생성, 수정 또는 삭제합니다.
terraform apply --auto-approve
destroy
명령어는 Terraform이 생성한 모든 리소스를 제거합니다.
terraform destroy --auto-approve
state list
명령어는 Terraform이 현재 상태 파일에서 관리하고 있는 모든 리소스를 나열합니다.
state show <resource>
명령어는 Terraform이 상태 파일에서 관리하는 특정 리소스에 대한 자세한 정보를 표시합니다.
terraform state list
graph
명령어는 GraphViz를 활용해서 실행할 작업을 시각화한다.
sudo apt install graphviz
terraform graph | dot -Tsvg > graph.svg