IT/Terraform

[Terraform] Install (tfenv 포함)

louky 2021. 3. 17. 16:12
반응형

Terraform 을 설치 하는 방법에 대해 오늘도 끄적 거린다..........(제발 기억좀 하자!!)

 

설치는 Mac, Window, linux 모두 가능하지만 필자는 Linux에서 설치하여 사용하였다. 

설치 환경 
- OS : Centos 7.6 (x86_64)

 

설치 방법은 크게 2 가지이다. 

 

특정 버전을 다운로드하여 사용하는 방법과  tfenv라는 환경으로 설치 하는 방법이 있다. 

 

 

- 특정 버전으로 설치 

특정 버전으로 설치 하는 방법은 아주 간단하다.

 

www.terraform.io/downloads.html 에 가서 설치하고자 하는 OS버전 및 terraform버전을 다운로드 한다. 

특정  PC에서 다운로드 해도 되고 linux나 Mac os의 경우  wget으로 다운로드가 가능하다.

최신 버전이 아닌 다른 버전으로 설치를 하고자 할 경우 https://releases.hashicorp.com/terraform/ 로 가서 사용하고자 하는  버전으로 다운로드 하면 된다. 

 

필자는 최신버전으로 하였다. (2021.03.17 기준)

# wget https://releases.hashicorp.com/terraform/0.14.8/terraform_0.14.8_linux_amd64.zip

--2021-03-17 23:59:46--  https://releases.hashicorp.com/terraform/0.14.8/terraform_0.14.8_linux_amd64.zip
Resolving releases.hashicorp.com (releases.hashicorp.com)... 151.101.1.183, 151.101.65.183, 151.101.129.183, ...
Connecting to releases.hashicorp.com (releases.hashicorp.com)|151.101.1.183|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33785240 (32M) [application/zip]
Saving to: ‘terraform_0.14.8_linux_amd64.zip’

100%[=====================================================================================================================================================================================>] 33,785,240  8.28MB/s   in 4.1s

2021-03-17 23:59:51 (7.93 MB/s) - ‘terraform_0.14.8_linux_amd64.zip’ saved [33785240/33785240]



# ls -al
합계 32996
drwxr-xr-x   2 root root       46  3월 17 23:59 .
dr-xr-xr-x. 19 root root      272  3월 17 23:59 ..
-rw-r--r--   1 root root 33785240  3월 11 02:32 terraform_0.14.8_linux_amd64.zip

Terraform설치 파일을 zip으로 묶여 있기에 압축을 해제 할 수 있는 unzip패키지가 설치 되어야 한다. 

# yum install -y unzip

 

다운로드 된 terraform 설치 파일을 아래와 같이 압축을 해제하고 설치 한다. 

[root@localtest:/terraform ] # unzip terraform_0.14.8_linux_amd64.zip
Archive:  terraform_0.14.8_linux_amd64.zip
  inflating: terraform
[root@localtest:/terraform ] # ls -al
합계 113800
drwxr-xr-x   2 root root       63  3월 18 00:00 .
dr-xr-xr-x. 19 root root      272  3월 17 23:59 ..
-rwxr-xr-x   1 root root 82741780  3월 11 02:09 terraform
-rw-r--r--   1 root root 33785240  3월 11 02:32 terraform_0.14.8_linux_amd64.zip

압축을 해제하고나면 바이너리 파일 하나만 보이게 된다. 

 

다른 설치 패키지 처럼 별도의 make  등은 하지 않아도 된다. 

 

압축이 해제된 바이너리 파일을 /usr/local/bin 또는 /usr/bin 하위로 복사 한다. 

꼭 복사를 할 필요는 없고 필요에 따라서만 복사하면 된다. 

 

복사할 경우 

 # cp terraform /usr/bin/

 

설치 된 terraform version을 확인한다

# ./terraform -version
Terraform v0.14.8

 

 

- tfenv로 설치 

: tfenv는 pyenv 또는 venv 같이 terraform을 가상 환경으로 구성하는 방법이다. 여러 버전으로 설치하고 관리할때 유용하다.

이 또한 설치는 어렵지 않다. 

 

tfenv github 사이트 (자세한 설치 방법 및 linux 외 설치 방법을 참고 한다.)

https://github.com/tfutils/tfenv

 

tfutils/tfenv

Terraform version manager. Contribute to tfutils/tfenv development by creating an account on GitHub.

github.com

### git로 clone한다. ~/.tfenv 가 생성되고 해당 경로에 tfenv를 설치 한다. 
# git clone https://github.com/tfutils/tfenv.git ~/.tfenv                   

Cloning into '/root/.tfenv'...
remote: Enumerating objects: 87, done.
remote: Counting objects: 100% (87/87), done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 1240 (delta 41), reused 34 (delta 18), pack-reused 1153
Receiving objects: 100% (1240/1240), 257.94 KiB | 0 bytes/s, done.
Resolving deltas: 100% (780/780), done.



### 환경변수를 등록 한다. 
# echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile   

### 등록한 환경 변수를 읽어 들인다. 
# source ~/.bash_profile

위와 같이 사용자  HOME의 profile등에 설정해서 사용하는 방법이 있고 그렇지 않을 경우 아래와 같이 /usr/bin 또는 /usr/local/bin 하위에 복사 또는 링크를 설정하여 사용한다. 

 

tfenv github에서는 링크로 설정하여 사용하도록 가이드 하고 있다. 

# ln -s ~/.tfenv/bin/* /usr/local/bin/

필자는 링크를 설정하지 않고 .bash_profile에 등록하여 사용하였다. 

 

tfenv사용 법은 아래와 같다. 

 

설치 가능한 version확인 - 설치가 가능한 버전을 보여준다. 

 

usage) tfenv list-remote

# tfenv list-remote
0.15.0-beta1
0.15.0-alpha20210210
0.15.0-alpha20210127
0.15.0-alpha20210107
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc1
0.14.0-beta2
0.14.0-beta1
0.14.0-alpha20201007
0.14.0-alpha20200923
0.14.0-alpha20200910
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.13.0-rc1
0.13.0-beta3
0.13.0-beta2
0.13.0-beta1
0.12.30
0.12.29
0.12.28
0.12.27
0.12.26
0.12.25
0.12.24
0.12.23
0.12.22
0.12.21
0.12.20
0.12.19
0.12.18
0.12.17
0.12.16


~ (생략)

terraform 설치 

usage)  tfenv install  [version] 

 # tfenv install 0.14.2
Installing Terraform v0.14.2
Downloading release tarball from https://releases.hashicorp.com/terraform/0.14.2/terraform_0.14.2_linux_amd64.zip
######################################################################## 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.14.2/terraform_0.14.2_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
terraform_0.14.2_linux_amd64.zip: 성공
Archive:  tfenv_download.8nTUQ6/terraform_0.14.2_linux_amd64.zip
  inflating: /root/.tfenv/versions/0.14.2/terraform
Installation of terraform v0.14.2 successful. To make this your default version, run 'tfenv use 0.14.2'

tfenv로 설치 할때도 unzip Pkg가 없을 경우 Install중 에러가 발생할 수 있다.

 

최신 버전으로 바로 설치 하고자 할 경우  버전 대신 latest를 입력하면 된다. 

# tfenv install latest

Installing Terraform v0.14.8
Downloading release tarball from https://releases.hashicorp.com/terraform/0.14.8/terraform_0.14.8_linux_amd64.zip
######################################################################## 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.14.8/terraform_0.14.8_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
terraform_0.14.8_linux_amd64.zip: 성공
Archive:  tfenv_download.Smph93/terraform_0.14.8_linux_amd64.zip
  inflating: /root/.tfenv/versions/0.14.8/terraform
Installation of terraform v0.14.8 successful. To make this your default version, run 'tfenv use 0.14.8'

설치가 되었으면 설치된 버전을 확인한다. 

 

local에 설치된 버전 확인

usage) tfenv list 

# tfenv list
  0.14.8
  0.14.7
  0.14.2
No default set. Set with 'tfenv use <version>'

 

사용하고자 하는 버전으로 설정

 

usage) tfenv use [version] 

 # tfenv use 0.14.8
Switching default version to v0.14.8
Switching completed


##### 설정된 버전 확인 
# tfenv list
* 0.14.8 (set by /root/.tfenv/version)         ### 맨 앞에 '*'표시 된것이 사용중인 버전
  0.14.7  
  0.14.2

 

버전 삭제 

# tfenv uninstall 0.14.8
Uninstall Terraform v0.14.8
Terraform v0.14.8 is successfully uninstalled
[root@localtest:/terraform ] # tfenv list
  0.14.7
  0.14.2
No default set. Set with 'tfenv use <version>'

만약 위와 같이 삭제 하고 다시 설치하는데 설치가 정상적이지 않다면 tfenv가 설치된 ~/.tfenv/versions/ 하위에 해당 버전의 디렉토리를 삭제 하면 정상적으로 다시 설치가 된다. 

 

 

 

***  tfenv말고  tfswitch라는 것도 있다. 사용 목적은 동일하고 다만 사용법이 조금 사이할 뿐 ..... 편한 tool을 사용하면 된다. 

2021.04.01 - [IT/Terraform] - [Terraform] install Tool - tfswitch

 

[Terraform] install Tool - tfswitch

Terraform버전 관리를 위한 Tool로 tfenv외에도 tfswitch라는 tool이 있다. tfenv는 원하는 버전 별로 설치하여 필요할때 마다 버전을 변경하면서 사용하는 반면에 tfswitch는 tf파일내에 버전을 명시해 놓을

louky0714.tistory.com

 

반응형

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

[Terraform] Terraform tf파일내에서 줄바꿈 방법  (0) 2022.05.17
[Terraform] install Tool - tfswitch  (0) 2021.04.01
[Terraform] command  (0) 2021.03.31