Terraform버전 관리를 위한 Tool로 tfenv외에도 tfswitch라는 tool이 있다.
tfenv는 원하는 버전 별로 설치하여 필요할때 마다 버전을 변경하면서 사용하는 반면에
tfswitch는 tf파일내에 버전을 명시해 놓을 경우 해당 버전으로 변경/설치 해주는 tool이라고 생각하면 된다.
먼저 tfswitch도 tfenv처럼 다양한 OS를 지원한다.
필자는 linux에서 설치하였기에 linux버전으로 설명을 하지만 기본적인 사용 방법은 동일하다
OS별 설치 방법은 개발자 사이트를 참고한다.
https://tfswitch.warrensbox.com/
tfswitch 특징
- terraform 릴리즈 별로 설치 및 선택이 가능
- tf 확장자 파일 내 "required_version”을 명시 할 경우 해당 버전으로 변경 및 설치 가능
- tfswitch 명령어 설치한 terraform버전에 대해서는 삭제 불가능
tfswitch | tfenv | |
install | 선택 및 tf 파일에 명시된 버전으로 설치 | 사용자가 설치하고자 하는 버전으로 설치 |
uninstall | 수동으로 삭제 | uninstall을 지원 |
switch(버전 변경) | 선택 및 tf 파일에 명시된 버전으로 변경 | 사용자가 직접 변경 |
위와 같이 tfswitch와 tfenv를 간단히 비교하면 tfswitch가 사용상에 있어서는 편리해 보인다. Uninstall까지 지원한다면 금상첨화로 보인다.
본론으로 들어가서 tfswitch를 설치 및 사용하는 방법이다.
-
Install
# curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9159 100 9159 0 0 21200 0 --:--:-- --:--:-- --:--:-- 21201
warrensbox/terraform-switcher info checking GitHub for latest tag
warrensbox/terraform-switcher info found version: 0.11.1071 for 0.11.1071/linux/amd64
warrensbox/terraform-switcher info installed /usr/local/bin/tfswitch
# tfswitch --version
Version: 0.11.1071
설치는 정말 간단하다...
tfswotch를 이용한 terraform 설치
- 직접 설치
usage) tfswitch --list-all
방향키로 이동하여 해당 버전을 선택하면 설치 된다.
(“*recent” 로 표시되어 있을 경우 해당 버전은 설치 되어 있는 것이다. )
- tf 파일 내용 확인 후 설치
main.tf 같은 파일 안에 “required_version”이라고 명시를 해놓으면 해당 버전으로 설치를 한다.
# cat main.tf
terraform {
required_version = "0.14.1"
required_providers {
aws = ">=2.53.0"
}
}
단, 파일마다 terraform 버전이 명시 되어 있을 경우 파일마다 명시된 버전을 전부 설치를 하는 것이 아니고 파일 이름으로 정렬 후 첫번째 파일에 명시되어 있는 버전으로 설치를 한다.
- terraform 버전 변경
설치가 되어 있을때만 변경을 하는 것이 아니라 설치가 안되어 있을 경우에도 해당 버전을 선택하면 설치를 한 뒤 변경이 된다.
v0.13.5에서 v0.12.5로 변경
- tfswitch에서 terraform 버전 삭제
아쉽게도 필자가 확인해본 바로는 아직 삭제를 지원하지 않고 있는듯 하다.
tfswitch에서 삭제는 지원하지 않을뿐 삭제는 아래와 같은 방법으로 삭제가 가능하다.
$HOME/.terraform.version 하위에 있는 Terraform 버전 파일과 RECENT 파일내 버전 리스틑 삭제 한다.
<삭제 전>
<삭제>
sh-4.2# cd $HOME/.terraform.versions
sh-4.2# ls -al
합계 245152
drwxr-xr-x. 2 root root 92 4월 1 02:19 .
dr-xr-x---. 6 root root 4096 4월 1 00:55 ..
-rw-r--r--. 1 root root 21 4월 1 02:19 RECENT
-rwxr-xr-x. 1 root root 85545059 4월 1 00:55 terraform_0.13.5
-rwxr-xr-x. 1 root root 82732676 4월 1 01:08 terraform_0.14.7
-rwxr-xr-x. 1 root root 82741780 4월 1 02:19 terraform_0.14.9
## 버전 삭제
sh-4.2# rm -rf terraform_0.14.9
## RECENT파일내 버전 리스트 확인
sh-4.2# cat RECENT
0.14.9
0.14.7
0.13.5
## RECENT 파일내 버전 리스트 삭제
sh-4.2# sed -i "/0.14.9/d" RECENT
## 삭제 후 확인
sh-4.2# cat RECENT
0.14.7
sh-4.2# ls -al
합계 164348
drwxr-xr-x. 2 root root 68 4월 1 02:20 .
dr-xr-x---. 6 root root 4096 4월 1 00:55 ..
-rw-r--r--. 1 root root 14 4월 1 02:20 RECENT
-rwxr-xr-x. 1 root root 85545059 4월 1 00:55 terraform_0.13.5
-rwxr-xr-x. 1 root root 82732676 4월 1 01:08 terraform_0.14.7
<삭제 후 >
tfenv설치 방법은 아래 링크를 확인한다.
2021.03.17 - [IT/Terraform] - [Terraform] Install (tfenv 포함)
'IT > Terraform' 카테고리의 다른 글
[Terraform] Terraform tf파일내에서 줄바꿈 방법 (0) | 2022.05.17 |
---|---|
[Terraform] command (0) | 2021.03.31 |
[Terraform] Install (tfenv 포함) (0) | 2021.03.17 |