tfenv로 테라폼 버전 관리하기
들어가며 : 버전관리가 필요한 이유
테라폼Terraform을 사용하다 보면 여러 버전을 동시에 사용하는 경우가 발생합니다. 최근에 만든 프로젝트는 최신 버전이지만 이전에 만든 리소스를 굳이 건드리고 싶지 않다거나 아직 기능을 지원하지 않는 등 이유는 다양합니다. 하지만 테라폼은 자체적으로 버전 관리 기능이 없어 여러 개의 버전을 동시에 사용하기 위해 direnv를 이용해 프로젝트별 테라폼의 경로를 다르게 잡거나 brew로 여러 개를 설치해두고 전환(Switch)하며 사용하기도 합니다.
이 글에서는 tfenv를 사용해 쉽게 테라폼 여러 버전을 사용하는 방법을 소개합니다. tfenv는 루비Ruby 언어의 버전관리 시스템인 rbenv에서 영감을 얻어서 만들었습니다.
44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮
tfenv 설치
macOS인 경우 brew 사용해 tfenv를 설치합니다.
$ brew install tfenv
리눅스Linux 계열에서는 Git 소스를 클론(Clone)후 PATH에 추가합니다.
$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv
$ echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile
tfenv 사용
tfenv 사용을 위해 먼저 테라폼 버전을 설치해야 합니다.
# 설치가능한 테라폼 버전 목록 보기
$ tfenv list-remote
0.12.9
0.12.8
0.12.7
0.12.6
...
# 특정 버전 설치
$ tfenv install 0.12.9
# 최신 버전 설치
$ tfenv install latest
# 테라폼 파일 분석후 최소 요구 버전 설치
$ tfenv install min-required
# .terraform-version에 지정된 버전 설치
$ terraform install
설치된 테라폼 버전 목록을 보기위해서는 list 명령어를 사용합니다.
$ tfenv list
* 0.12.9 (set by /usr/local/Cellar/tfenv/1.0.1/version)
0.11.14
0.11.13
설치가 완료 되었다면 버전 전환을 할때는 다음 명령어를 사용합니다.
# 특정 버전 사용
$ tfenv use 0.12.9
# 최신 버전 사용
$ tfenv use latest
매번 테라폼 버전을 변경하는것이 번거로운 경우 .terraform-version
을 사용합니다. .terraform-version
파일에 버전을 명시하면 해당 폴더는 물론 하위폴더에서 해당 버전으로 사용됩니다.
$ echo 0.11.14 > .terraform-version
Terraform v0.11.14
$ echo latest > .terraform-version
$ terraform --version
Terraform v0.12.9