IT/Terraform

[Terraform] install Tool - tfswitch

louky 2021. 4. 1. 12:24
반응형

Terraform버전 관리를 위한 Tool로 tfenv외에도 tfswitch라는 tool이 있다.

 

tfenv는 원하는 버전 별로 설치하여 필요할때 마다 버전을 변경하면서 사용하는 반면에 

tfswitch는 tf파일내에 버전을 명시해 놓을 경우 해당 버전으로 변경/설치 해주는 tool이라고 생각하면 된다.

 

먼저 tfswitch도 tfenv처럼 다양한 OS를 지원한다.

 

필자는 linux에서 설치하였기에 linux버전으로 설명을 하지만 기본적인 사용 방법은 동일하다

OS별 설치 방법은 개발자 사이트를 참고한다.

https://tfswitch.warrensbox.com/ 

 

TFSwitch

Introduction to tfswitch The tfswitch command line tool lets you switch between different versions of terraform. If you do not have a particular version of terraform installed, tfswitch lets you download the version you desire. The installation is minimal

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 포함)

 

[Terraform] Install (tfenv 포함)

Terraform 을 설치 하는 방법에 대해 오늘도 끄적 거린다..........(제발 기억좀 하자!!) 설치는 Mac, Window, linux 모두 가능하지만 필자는 Linux에서 설치하여 사용하였다. 설치 환경 - OS : Centos 7.6 (x86_6..

louky0714.tistory.com

 

 

반응형

'IT > Terraform' 카테고리의 다른 글

[Terraform] Terraform tf파일내에서 줄바꿈 방법  (0) 2022.05.17
[Terraform] command  (0) 2021.03.31
[Terraform] Install (tfenv 포함)  (0) 2021.03.17