手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Terraform の基本設定 – IaC 実行環境を固定バージョンで管理する

関連する記事

Terraform は、サーバー、ネットワーク、クラウド、仮想化基盤などの構成をコードとして扱うための CLI です。Ubuntu 26.04 サーバーで使う場合は、なんとなく最新版を入れるのではなく、利用するプロジェクトで決めたバージョンを固定しておくと再現性を保ちやすくなります。

この記事では、Terraform の zip アーカイブを固定バージョンで取得し、/usr/local/bin/terraform に配置して、terraform version -json で確認する基本構成をまとめます。

この記事で扱うこと
  • Terraform を固定バージョンで導入する考え方
  • CPU アーキテクチャと配布ファイル名の対応
  • /usr/local/src/terraform へのアーカイブ保存
  • /usr/local/bin/terraform への配置
  • terraform version -json による確認
対象 OSUbuntu 26.04 Server
導入方式zip アーカイブを取得して binary を配置
アーカイブ保存先/usr/local/src/terraform
実行ファイル/usr/local/bin/terraform
確認コマンドterraform version -json
参考書籍
参考書籍
詳解 Terraform 第3版
Terraform の設計、module、state、運用上の注意点を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

固定バージョンで導入する理由

Terraform は provider、module、state の互換性を意識して扱うツールです。OS パッケージの更新に任せて CLI バージョンが変わると、既存の構成管理や CI の挙動確認が必要になる場合があります。

そのため、サーバー管理用の実行環境では、利用する Terraform のバージョンを明示して導入し、更新するときも意図的に切り替える方が扱いやすくなります。

  • プロジェクトで使う Terraform version を決める
  • provider version は別途 lock file で管理する
  • CLI 更新時は plan の差分を確認する
  • state を共有する場合は実行環境の差を小さくする

CPU アーキテクチャを確認する

HashiCorp の配布ファイル名では、x86_64 は amd64、aarch64 は arm64 として扱います。自動化する場合も、この対応を明示しておくと別アーキテクチャの Ubuntu 26.04 サーバーで迷いにくくなります。

uname -m
dpkg --print-architecture
Ubuntu 側の表示Terraform 配布名
x86_64amd64
amd64amd64
aarch64arm64
arm64arm64

必要なパッケージを用意する

zip アーカイブを展開するため、unzip を用意します。ダウンロードに curl を使う場合は、proxy 環境や CA 証明書の信頼設定も先に確認しておきます。

sudo apt update
sudo apt install -y curl unzip ca-certificates

Terraform をダウンロードする

ここでは例として 1.15.7 を使います。実際には、利用中のプロジェクトや provider の互換性に合わせてバージョンを決めます。

terraform_version="1.15.7"
terraform_os="linux"
terraform_arch="amd64"
archive_dir="/usr/local/src/terraform"
archive_file="terraform_${terraform_version}_${terraform_os}_${terraform_arch}.zip"
sudo install -d -o root -g root -m 0755 "$archive_dir"
curl -fsSL -o "/tmp/$archive_file" "https://releases.hashicorp.com/terraform/${terraform_version}/${archive_file}"
sudo install -o root -g root -m 0644 "/tmp/$archive_file" "$archive_dir/$archive_file"

実行ファイルを配置する

取得したアーカイブを展開し、/usr/local/bin/terraform として実行できるようにします。複数バージョンを切り替える運用にする場合は、別途 wrapper や version manager を検討します。

sudo unzip -o "$archive_dir/$archive_file" -d /usr/local/bin
sudo chown root:root /usr/local/bin/terraform
sudo chmod 0755 /usr/local/bin/terraform
command -v terraform

バージョンを JSON で確認する

導入後は terraform version だけでなく、機械的に確認しやすい terraform version -json も見ます。自動化や監査では、この出力から terraform_version を確認すると扱いやすくなります。

terraform version
terraform version -json
出力例
{
  "terraform_version": "1.15.7",
  "platform": "linux_amd64"
}

更新するときの考え方

Terraform を更新するときは、binary を差し替えるだけで終わりにしない方が安全です。既存の working directory で terraform initterraform validateterraform plan を確認し、provider lock file や state の扱いも合わせて見ます。

terraform init
terraform validate
terraform plan

Terraform CLI の version と provider の version は別物です。CLI を更新しても provider が自動的に安全な組み合わせへ変わるわけではないため、.terraform.lock.hcl と plan の差分を確認します。

確認ポイント

  • /usr/local/src/terraform に取得した zip を保存している
  • /usr/local/bin/terraform が root 所有で実行可能になっている
  • terraform version -jsonterraform_version が意図した値になっている
  • x86_64 / aarch64 と amd64 / arm64 の対応を誤っていない
  • CLI 更新時に terraform plan で差分を確認している

まとめ

Ubuntu 26.04 で Terraform を使う場合、重要なのは単に CLI を入れることではなく、どのバージョンを、どのパスへ、どのアーキテクチャ向けに配置したのかを明確にすることです。

/usr/local/src/terraform にアーカイブを保存し、/usr/local/bin/terraform を固定バージョンで配置しておくと、サーバー管理や CI の実行環境を揃えやすくなります。更新時は terraform version -jsonterraform plan を確認し、意図しない差分を出さないように扱います。

関連する記事
Ubuntu 26.04 Terraform の基本設定 – IaC 実行環境を固定バージョンで管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る