Terraform のインストール

LinuxBeginner
オンラインで実践に進む

はじめに

Terraform は、HashiCorp によって作成されたオープンソースの Infrastructure as Code (IaC) ツールです。これにより、高水準の構成言語を使用してデータセンターインフラストラクチャを定義し、プロビジョニングできます。

この実験(Lab)では、Ubuntu 22.04 システムに Terraform をインストールする方法を学習します。HashiCorp の公式ガイドに従い、HashiCorp GPG キーと公式パッケージリポジトリを追加します。この方法により、標準の apt パッケージマネージャを使用して Terraform を簡単にインストールおよび更新できるようになります。

システムを更新し、gnupg および software-properties-common パッケージをインストールする

このステップでは、システムのパッケージリストを更新し、必要な前提条件パッケージをインストールします。これは、システムが最新であることを確認し、新しいソフトウェアリポジトリを追加および管理するために必要なツールを持っていることを保証するための重要な最初のステップです。

まず、apt パッケージインデックスを更新します。このコマンドは、設定されているすべてのソースからパッケージ情報をダウンロードします。

sudo apt-get update

次に、gnupgsoftware-properties-common、および wget をインストールします。

  • gnupg は、HashiCorp リポジトリの GPG 署名を確認するために必要です。
  • software-properties-common は、ソフトウェアソースを管理するための便利なスクリプトを提供します。
  • wget は、インターネットからファイルをダウンロードするためのユーティリティであり、GPG キーを取得するために使用します。

これらのパッケージをインストールするには、次のコマンドを実行します。

sudo apt-get install -y gnupg software-properties-common wget

apt がパッケージとその依存関係をダウンロードおよびインストールするにつれて、出力が表示されます。インストールが成功すると、エラーメッセージなしで終了します。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up gnupg ([version]) ...
Setting up software-properties-common ([version]) ...
...

前提条件がインストールされたので、HashiCorp GPG キーを追加する準備が整いました。

wget および gpg --dearmor を使用して HashiCorp GPG キーをダウンロードしインストールする

このステップでは、HashiCorp GPG キーをダウンロードし、システムのキーリングに追加します。このキーは、apt が HashiCorp リポジトリからダウンロードしたパッケージが本物であり、改ざんされていないことを検証するために使用されます。

これを実行するために、wgetgpg、および tee を連結する単一のコマンドを使用します。

  • wget -O- ... は、URL からキーをダウンロードし、標準出力に出力します。
  • gpg --dearmor は、標準入力からキーを処理し、apt が期待するバイナリ形式に変換します。
  • sudo tee ... は、標準入力からバイナリキーを受け取り、ファイル /usr/share/keyrings/hashicorp-archive-keyring.gpg に書き込みます。このディレクトリへの書き込みには root 権限が必要なため、teesudo と共に使用します。

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

出力の中で、apthttps://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 はインストールされるパッケージを表示し、確認を求めます。非対話型環境であるため、インストールは自動的に続行されます。

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 のインストールに成功しました。

以下の方法を学習しました。

  • システムの更新と、gnupgwget などの前提パッケージのインストール。
  • 公式の HashiCorp GPG キーをダウンロードし、パッケージの信頼性を確保するために追加する方法。
  • セキュリティ対策として GPG キーのフィンガープリントを確認する方法。
  • HashiCorp の apt リポジトリをシステムのソフトウェアソースに追加する方法。
  • apt-get コマンドを使用して Terraform パッケージをインストールする方法。
  • Terraform のバージョンを確認してインストールを検証する方法。

これらの手順に従うことで、将来的に標準のシステムコマンドを使用して簡単に更新できる、クリーンで管理しやすい Terraform のセットアップが完了しました。