소개
Terraform 은 HashiCorp 에서 만든 오픈 소스 Infrastructure as Code (IaC) 도구입니다. 이를 통해 고수준 구성 언어 (high-level configuration language) 를 사용하여 데이터 센터 인프라를 정의하고 프로비저닝할 수 있습니다.
본 랩 (lab) 에서는 Ubuntu 22.04 시스템에 Terraform 을 설치하는 방법을 배웁니다. HashiCorp 공식 가이드를 따를 것이며, 여기에는 HashiCorp GPG 키와 공식 패키지 저장소 (repository) 를 추가하는 과정이 포함됩니다. 이 방법을 사용하면 표준 apt 패키지 관리자를 사용하여 Terraform 을 쉽게 설치하고 업데이트할 수 있습니다.
시스템 업데이트 및 gnupg, software-properties-common 패키지 설치
이 단계에서는 시스템의 패키지 목록을 업데이트하고 필요한 필수 패키지를 설치합니다. 이는 시스템이 최신 상태인지 확인하고 새 소프트웨어 저장소를 추가하고 관리하는 데 필요한 도구를 갖추도록 하기 위한 중요한 첫 단계입니다.
먼저, apt 패키지 인덱스를 업데이트합니다. 이 명령어는 구성된 모든 소스에서 패키지 정보를 다운로드합니다.
sudo apt-get update
다음으로, gnupg, software-properties-common, 및 wget을 설치합니다.
gnupg는 HashiCorp 저장소의 GPG 서명을 확인하는 데 필요합니다.software-properties-common은 소프트웨어 소스 관리를 위한 유용한 스크립트를 제공합니다.wget은 인터넷에서 파일을 다운로드하는 유틸리티로, GPG 키를 가져오는 데 사용됩니다.
이 패키지들을 설치하려면 다음 명령어를 실행합니다:
sudo apt-get install -y gnupg software-properties-common wget
apt가 패키지와 그 종속성 (dependencies) 을 다운로드하고 설치하는 동안 출력이 표시될 것입니다. 성공적인 설치는 오류 메시지 없이 종료됩니다.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up gnupg ([version]) ...
Setting up software-properties-common ([version]) ...
...
필수 구성 요소 (prerequisites) 설치가 완료되었으므로, 이제 HashiCorp GPG 키를 추가할 준비가 되었습니다.
wget 및 gpg --dearmor 를 사용하여 HashiCorp GPG 키 다운로드 및 설치
이 단계에서는 HashiCorp GPG 키를 다운로드하여 시스템의 키링 (keyring) 에 추가합니다. 이 키는 apt가 HashiCorp 저장소에서 다운로드하는 패키지가 정품이며 변조되지 않았는지 확인하는 데 사용됩니다.
이 작업을 수행하기 위해 wget, gpg, 및 tee를 연결하는 단일 명령어를 사용할 것입니다.
wget -O- ...는 URL 에서 키를 다운로드하여 표준 출력 (standard output) 으로 내보냅니다.gpg --dearmor는 표준 입력에서 키를 처리하여apt가 예상하는 바이너리 형식으로 변환합니다.sudo tee ...는 표준 입력에서 바이너리 키를 받아/usr/share/keyrings/hashicorp-archive-keyring.gpg파일에 씁니다. 이 디렉토리에 쓰려면 루트 권한이 필요하므로sudo와 함께tee를 사용합니다.
HashiCorp 의 GPG 키를 설치합니다.
wget -O- https://apt.releases.hashicorp.com/gpg \
| gpg --dearmor \
| sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null
명령어가 성공하면, 지정된 파일에 쓰는 동시에 GPG 키의 바이너리 내용을 터미널에 출력할 것입니다. 사람이 읽을 수 없는 문자열이 스트리밍되는 것을 볼 수 있는데, 이는 정상적인 동작입니다.
--[timestamp]-- https://apt.releases.hashicorp.com/gpg
Resolving apt.releases.hashicorp.com (apt.releases.hashicorp.com)... [server IPs]
Connecting to apt.releases.hashicorp.com (apt.releases.hashicorp.com)|[IP]|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: [size] ([size_human]) [binary/octet-stream]
Saving to: 'STDOUT'
- 100%[===================>] [size] --.-KB/s in 0s
[timestamp] ([speed]) - written to stdout [[size]/[size]]
... (binary output from gpg) ...
이제 키가 시스템에 저장되었으며 apt에서 사용할 준비가 되었습니다.
gpg --fingerprint 를 사용하여 HashiCorp GPG 키 지문 확인
이 단계에서는 방금 다운로드한 GPG 키의 지문을 확인할 것입니다. 이는 HashiCorp 의 공식적이고 올바른 키를 가지고 있으며 악성 키가 아님을 확인하는 중요한 보안 절차입니다.
이전 단계에서 생성한 키링 파일을 지정하여 gpg 명령어를 사용하여 키의 지문을 표시할 수 있습니다.
다음 명령어를 실행합니다:
gpg --no-default-keyring --keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg --fingerprint
이 명령어는 지문을 포함하여 키 세부 정보를 표시합니다.
/usr/share/keyrings/hashicorp-archive-keyring.gpg
-------------------------------------------------
pub rsa4096 [creation_date] [SC] [expires: [expiry_date]]
[FINGERPRINT]
uid [ unknown] HashiCorp Security (HashiCorp Package Signing) <security+packaging@hashicorp.com>
sub rsa4096 [creation_date] [S] [expires: [expiry_date]]
pub 키 지문이 HashiCorp 에서 게시한 지문과 일치하는지 확인해야 합니다. 지문은 40 자리 16 진수 문자열이어야 합니다. 출력이 예상 지문과 일치하므로 올바른 키를 가지고 있다고 확신할 수 있습니다.
apt 소스에 HashiCorp 리포지토리 추가 및 apt 업데이트
이 단계에서는 공식 HashiCorp 저장소를 시스템의 apt 소스 목록에 추가합니다. 이는 패키지 관리자에게 Terraform 패키지를 어디서 찾아야 하는지 알려줍니다.
시스템에 공식 HashiCorp 저장소를 추가합니다.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
이 명령어는 아무런 출력도 생성해서는 안 됩니다. 새 저장소가 추가되었으므로, apt 패키지 목록을 다시 업데이트하여 HashiCorp 소스에서 사용 가능한 패키지를 인식하도록 해야 합니다.
sudo apt update
출력에서 apt가 https://apt.releases.hashicorp.com에서 패키지를 가져오고 있음을 나타내는 줄을 보게 될 것입니다.
Hit:1 http://[mirror]/ubuntu jammy InRelease
Hit:2 http://[mirror]/ubuntu jammy-updates InRelease
Hit:3 http://[mirror]/ubuntu jammy-backports InRelease
Hit:4 http://[mirror]/ubuntu jammy-security InRelease
Get:5 https://apt.releases.hashicorp.com jammy InRelease [[size] kB]
Get:6 https://apt.releases.hashicorp.com jammy/main amd64 Packages [[size] kB]
Fetched [total] kB in [time] ([speed] kB/s)
Reading package lists... Done
이제 시스템은 공식 HashiCorp 저장소에서 소프트웨어를 설치하도록 구성되었습니다.
apt-get install terraform 을 사용하여 Terraform 패키지 설치
마지막 단계에서는 Terraform 을 설치합니다. GPG 키와 저장소 설정이 완료되었으므로 이제 표준 apt-get install 명령어를 사용할 수 있습니다. apt는 HashiCorp 저장소에서 Terraform 패키지를 자동으로 찾아 서명을 확인하고 설치합니다.
Terraform 을 설치하려면 다음 명령어를 실행합니다:
sudo apt-get install terraform
apt는 설치될 패키지를 보여주고 확인을 요청할 것입니다. 현재 비대화형 환경 (non-interactive environment) 에 있으므로 설치는 자동으로 진행됩니다.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
terraform
[upgrade_info]
Need to get [size] MB of archives.
After this operation, [disk_space] MB of additional disk space will be used.
Get:1 https://apt.releases.hashicorp.com jammy/main amd64 terraform amd64 [version]-1 [[size] MB]
...
Setting up terraform ([version]-1) ...
설치가 완료되면 버전 확인을 통해 Terraform 이 올바르게 설치되었는지 확인할 수 있습니다.
terraform -v
이 명령어는 설치된 Terraform 버전을 출력해야 합니다.
Terraform v[version]
on linux_amd64
축하합니다! 시스템에 Terraform 설치를 성공적으로 완료했습니다.
요약
본 랩 (Lab) 에서는 공식 HashiCorp 패키지 저장소를 사용하여 Ubuntu 시스템에 Terraform 을 성공적으로 설치했습니다.
다음과 같은 방법을 학습했습니다:
- 시스템을 업데이트하고
gnupg및wget와 같은 필수 패키지를 설치하는 방법. - 공식 HashiCorp GPG 키를 다운로드하고 추가하여 패키지 무결성을 보장하는 방법.
- 보안 조치로 GPG 키의 핑거프린트 (fingerprint) 를 확인하는 방법.
- HashiCorp
apt저장소를 시스템 소프트웨어 소스에 추가하는 방법. apt-get명령어를 사용하여 Terraform 패키지를 설치하는 방법.- Terraform 버전을 확인하여 설치를 검증하는 방법.
이 단계를 따름으로써, 향후 표준 시스템 명령어를 사용하여 쉽게 업데이트할 수 있는 깔끔하고 관리하기 쉬운 Terraform 설치 환경을 구축했습니다.



