본문 바로가기
INFRA/Operation

Linux Terraform & Ansible 설치 방법

by BTC_지수 2022. 5. 10.

안녕하세요! 하씨 가문의 영광입니다.

지금까지 Terraform 과 Ansible의 개요 및 구성에 대해서 알아보았습니다.

이제는 더 나아가서 Terraform & Ansible의 설치 방법에 대해서 알아보도록 하겠습니다

 

Let's Go~~~

 

 

Terraform 설치

Terraform은 MaC, Window, Linux 운영체제에서 모두 사용이 가능합니다.

 

Linux에서 설치하는 방법은 크게 2가지가 있습니다.

1. 특정 버전을 다운로드 하여 사용하는 방법
2. tfenv 환경으로 설치하는 방법

 

먼저 첫번째 방법으로 설치를 진행해보도록 하겠습니다.

 

1. Binary 설치방법

테라폼은 Linux에 설치할 때, Binary 설치를 지원하므로 매우 편리하게 설치하고 삭제하고 할수있습니다.

 

  • wget으로 Binary zip 파일을 다운로드 받습니다.
wget https://releases.hashicorp.com/terraform/0.14.8/terraform_0.14.8_linux_amd64.zip

 

  • 파일압축을 해제해줍니다. 압축을 해제하면 terraform 파일을 확인할 수 있습니다.
unzip terraform_0.14.8_linux_amd64.zip

 

  • 압축해제해서 나온 Terraform 파일을 /usr/bin/ 경로로 이동시킵니다. (root계정이라면 sudo 안붙여도 됩니다.)
sudo mv terraform /usr/bin/

 

< 테라폼 설치 확인 >

$ terraform version
Terraform v0.14.8

 

Terraform version 명령어로 설치한 테라폼이 잘 동작하는지 확인합니다. 

설치판 버전과 동일하게 나타나면 설치 완료입니다.

 

2. tfenv 설치방법

테라폼은 계속해서 버전이 올라가고 있기 때문에, 버전 관리가 필요합니다. 

Terraform의 여러 버전을 관리하기 위해 tfenv를 사용하는 소개합니다.

 

< 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 사용을 위해 먼저 테라폼 버전을 설치해야 합니다.

 

  • 설치 가능한 Terraform Version 목록 보기
tfenv list-remote

 

  • 특정 버전 설치
tfenv install 0.12.9(특정버전)

 

  • 최신 버전 설치
tfenv install latest

 

  • 테라폼 파일 분석후 최소 요구 버전 설치
tfenv install latest

 

  • .terraform-version에 지정된 버전 설치
terraform install

 

  • 설치된 테라폼 버전 목록을 보기 위해서는 list 명령어를 사용합니다.
tfenv list

 

: 설치가 완료 되었다면 버전 전환 할때는 다음 명령어를 사용합니다.

  • 특정 버전 사용
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

 

< 참고 : https://louky0714.tistory.com/133 >

 

 

Ansible 설치

 

Ansible 설치하는 방법을 알아보기 전! 요구 사항에 대해서 한번 알아보도록 하겠습니다.

 

Ansible Control Node 요구 사항
  • Ansible
  • Python 2.6 이상
  • 하드웨어 제약 조건 없음
  • 운영체제 : 리눅스/유닉스 ( 현재 윈도우는 컨트롤 노드로 지원하지 않음 )
Ansible 관리대상 노드 요구 사항

     < 운영체제 - 리눅스 >

  • Python 2.4 이상
  • Python-simplejson (RHEL 5버전일 경우 해당)
  • libselinux=python (Selinux 활성화 되어 있을 경우)

    < 운영체제 - 윈도우 >

  • Remote Powershell 지원

 

설치는 다양한 환경에서 대부분 제공하며, python만 사전 설치되어 있으면 간단하게 구동이 가능합니다.

(CentOS, Ubuntu, MacOS 등)

 

이제는 Ansible 설치와 초기 설정에 대해 알아보도록하겠습니다.

 

Ansible 설치와 초기설정 (CentOS 7.6)

Ansible 설치는 Controller 서버에만 하면 됩니다.

 

  • Controller 서버에 접속하셔서, 가장 먼저 epel yum 레포지토리를 추가해줍니다.
$ yum install -y epel-release

 

  • epel 레포지토리가 정상적으로 추가 되었는지 레포 목록을 확인해봅니다.
$ yum repolist

 

  • yum을 통해 Ansible을 설치합니다.
$ yum install -y ansible

 

  • Ansible이 잘 설치가 되었는지 확인해 봅니다.

 

SSH Key 생성

Ansible은 SSH 접속을 기반으로 원격 서버들에게 명령을 전달합니다.

따라서, Controller 서버와 원격 서버간 SSH Key가 공유되어야합니다.

Controller 서버에서 모든 작업을 완료할 수 있습니다.

 

 

  • Controller서버에서 ssh key를 하나 생성합니다.
$ ssh-keygen

 

  • 이제 생성된 key를 원격 서버에 복사해줍니다. 중간에 원격 서버의 계정 비밀번호를 입력해야합니다.
$ ssh-copy-id [원격서버계정ID]&[원격서버 IP]

 

  • 정상적으로 ssh key가 복사되었다면 Controller 서버에서 원격 서버로 ssh 접속을 시도할 때, 비밀번호 입력없이 바로 접속이 되어야 합니다.
$ ssh [원격서버계정ID]@[원격서버IP]

 

Inventory 파일 작성

간단한 Ansible의 가장 기초 기능만 활용하여 간단한 테스트를 해보도록하겠습니다.

 

  • /etc/ansible/hosts 가 인벤토리 파일입니다.
  • 이 파일을 열고, 원격 서버 IP를 작성합니다. 
$ vi /etc/ansible/hosts

 

  • 인벤토리 목록에 있는 서버들로 접속이 정상적으로 이루어지는지를 확인합니다.
$ ansible all -m ping

위 사진처럼, 모든 원격 서버 목록이 SUCCESS 여야합니다.

 

<참조 : https://5equal0.tistory.com/entry/Ansible-%EC%95%A4%EC%84%9C%EB%B8%94Ansible-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%84%A4%EC%B9%98%EC%82%AC%EC%9A%A9%EB%B2%95-w-CentOS-76 >

 

지금까지 Terraform과 Ansible의 설치방법에 대해서 알아보았습니다!

다음에는 Azure와 AWS 환경에서 다루어보도록 하겠습니다~ 

지금까지 봐주셔서 감사합니다!!

 

댓글