본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP] Terraform 로컬 환경 구축하기

by BTC_XOXO 2023. 8. 18.

베하~

안녕하세요 3대 5000의 man, xoxo 입니다.

이번 시간에는 테라폼 설치 및 GCP 환경에서 자신의 프로젝트에 접근 및 로컬 환경을 제어할 수 있는 기본적인 환경 구축을 진행하도록 하겠습니다.

 

1. 테라폼 설치 

- 우선 자신의 로컬 환경에 테라폼을 설치해야 합니다.

 

Windows

1. 아래 URL에서 Terraform을 다운

https://www.terraform.io/downloads

 

Downloads | Terraform by HashiCorp

Terraform is an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure.

www.terraform.io

2. 다운받은 파일 압축을 해제 후 로컬에서 CLI  작업을 하기 위해 윈도우 환경 변수를 등록

내컴퓨터 속성 > 고급 시스템 설정 > 환경변수 Path 편집 > 새로만들기 "테라폼 경로" 등록 

- 아래의 참고 사진은 경로가 "C:\Terraform"에 존재합니다.

3. 잘 실행이 되는지 확인하기

Mac 

1. 아래 URL에서 Terraform에서 mac os 부분에 명령어를 터미널에서 실행 (brew가 설치 되어야함)

https://www.terraform.io/downloads

 
brew tap hashicorp/tap
brew install hashicorp/tap/terraform

2. 설치 확인 및 자동 완성 기능 셋팅

terraform version

zsh 을 사용하는 경우, zshrc 라는 파일을 생성하여, 해당 파일 안에 terraform autocomplete 관련 내용을 추가해야함

 

우선 아래 명령어를 통해 .zshrc 파일을 생성

touch ~/.zshrc

 

파일이 생성되면 (아무 로그도 뜨지 않으면), 아래 명령어를 통해 autocomplete 세팅을 진행

terraform -install-autocomplete

이후, cat 명령어를 통해 해당 파일에 테라폼 관련 자동완성 명령이 추가되었는지 확인

cat ~/.zshrc

 

 

3. (선택) 플러그인 캐시 설정 (mac)

이때, 플러그인 캐시 (plugin_cache_dir) 를 설정하게 되면 플러그인 캐시 저장 공간을 중앙집중식으로 변경하여, 동일한 플러그인을 한 번만 설치하여 저장 공간을 효율적으로 관리할 수 있음

 

테라폼은 terraformrc 라는 파일을 이용하여 별도의 환경 설정을 진행할 수 있다.

vim ~/.terraformrc

 

다음 명령어를 통해 테라폼 캐시 폴더를 명시

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

 

이후, 해당 폴더를 생성하여 해당 폴더 내에 파일이 생기도록 해 준다.

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

 

2. GCP 계정 연동

로컬 환경에서 테라폼을 통해 GCP 리소스를 제어하려면 다음 명령어를 실행 후 인증을 해야합니다.

gcloud auth application-default login --project $PROJECT

위와 같은 명령어를 실행하면 링크가 나와 인증 코드를 요구하거나 바로 링크로 연결되어 인증이 될 것입니다.

인증이 되면 기본 경로에 json 파일이 로컬에 생성되어 테라폼 코드를 통하여 리소스를 제어할 수 있을 것입니다. 

만약 에러가 난다면 코드 상에 자신이 가지고 있지 않은 권한 밖의 리소스를 제어하려고 할 때 생기는 것이니 주의하시면 좋을 것 같습니다.

 

오늘은 테라폼 설치 및 GCP 환경에서 자신의 프로젝트에 접근 및 로컬 환경을 제어할 수 있는 기본적인 환경 구축을 진행해보았습니다. 도움이 되셨으면 좋겠습니다~

'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글

Filestore란?  (0) 2023.08.18
[GCP] Dataproc 생성 hands-on  (0) 2023.08.18
[GCP] Dataproc  (0) 2023.08.17
[GCP] GCR과 GAR의 차이점  (0) 2023.08.06
[GCP] Container Registry image migration  (0) 2023.08.06

댓글