IaC(Infrastructure as Code)

Terraform 설치 및 설정하기

cwchoiit 2024. 3. 5. 10:49
728x90
반응형
SMALL
728x90
SMALL

 

Terraform 설치

 

Install | Terraform | HashiCorp Developer

Explore Terraform product documentation, tutorials, and examples.

developer.hashicorp.com

해당 문서에서 본인의 운영체제에 맞게 설치를 하면 된다.

설치가 끝나면 다음 명령어로 설치가 정상적으로 됐는지 확인한다.

terraform -version

 

버전이 잘 나오면 설치가 성공적으로 된 것이다.

 

 

Terraform 자동완성 설정

 

Install Terraform | Terraform | HashiCorp Developer

Install Terraform on Mac, Linux, or Windows by downloading the binary or using a package manager (Homebrew or Chocolatey). Then create a Docker container locally by following a quick-start tutorial to check that Terraform installed correctly.

developer.hashicorp.com

다음 링크에서 Terraform 자동완성 설정 기능을 문서를 통해 진행할 수 있다. 

 

나는 macOS이고 zsh을 사용하고 있다. 그런 경우 이런 명령어를 입력하라고 나온다.

terraform -install-autocomplete

 

입력하고 다음 명령어를 통해 zsh 설정 파일을 확인해보자.

vi ~/.zshrc

 

명령어를 잘 수행했다면 최하단에 다음 두 문장이 보일것이다.

autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/local/bin/terraform terraform

 

이 두 문장이 보이면 자동 완성은 설치된 것이고 이제 이 설정을 반영하기 위해 Shell을 껐다가 다시 키자.

 

창을 끄고 다시 켜도 되는데 그냥 다음 명령어를 입력하자. 그럼 zsh이 다시 켜지는 것과 같다.

zsh

 

이제 "terraform"을 입력한 다음 tab을 눌러보면 자동완성이 잘 된다.

 

 

Terraform CLI 및 캐시 경로 설정

terraform cli 설정을 하려면 이 파일을 작업해야 한다. "~/.terraformrc"

vi ~/.terraformrc

 

이 내용은 역시 공식 문서에 나와 있다.

 

CLI Configuration | Terraform | HashiCorp Developer

Learn to use the CLI configuration file to customize your CLI settings, including credentials, plugin caching, provider installation methods, etc.

developer.hashicorp.com

 

문서에서 테라폼 캐시를 사용하려면 이러한 문장을 넣어야한다고 나와 있다.

plugin_cache_dir   = "$HOME/.terraform.d/plugin-cache"
disable_checkpoint = true

 

설정한 다음 파일을 저장하자. 위 설정된 경로는 당연히 지금은 없을 것이다. 그래서 만들어주자.

mkdir -p ~/.terraform.d/plugin-cache

 

이렇게 작업이 끝나면 캐시를 사용할 수 있게 된다. 이를 하는 이유는 테라폼을 사용하여 여러 워크스페이스를 관리할 때 각 워크스페이스에서 필요로 하는 테라폼 프로바이더나 모듈을 다운로드를 받을 때 이 캐시 설정을 하지 않으면 기본값으로 해당 워크스페이스 경로에 플러그인 캐시가 쌓이는데 워크스페이스가 많아지면 많아질수록 이 용량이 방대해지기 때문에 이 캐시 디렉토리를 지정해서 중앙 집중식으로 관리해서 동일한 플러그인은 가져다가 사용하는 효율적인 방식을 기대하기 때문이다.

 

 

728x90
반응형
LIST

'IaC(Infrastructure as Code)' 카테고리의 다른 글

AWS + Terraform (Module)  (0) 2024.03.06
AWS + Terraform  (2) 2024.03.05
Terraform 소개 및 간단하게 다루어보기  (0) 2024.03.05
패커(Packer), Ansible 설치 및 설정  (0) 2024.03.05
IaC 개요  (2) 2024.03.05