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による確認
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| 導入方式 | zip アーカイブを取得して binary を配置 |
| アーカイブ保存先 | /usr/local/src/terraform |
| 実行ファイル | /usr/local/bin/terraform |
| 確認コマンド | terraform version -json |
固定バージョンで導入する理由
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_64 | amd64 |
amd64 | amd64 |
aarch64 | arm64 |
arm64 | arm64 |
必要なパッケージを用意する
zip アーカイブを展開するため、unzip を用意します。ダウンロードに curl を使う場合は、proxy 環境や CA 証明書の信頼設定も先に確認しておきます。
sudo apt update
sudo apt install -y curl unzip ca-certificatesTerraform をダウンロードする
ここでは例として 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 init、terraform validate、terraform plan を確認し、provider lock file や state の扱いも合わせて見ます。
terraform init
terraform validate
terraform planTerraform CLI の version と provider の version は別物です。CLI を更新しても provider が自動的に安全な組み合わせへ変わるわけではないため、.terraform.lock.hcl と plan の差分を確認します。
確認ポイント
/usr/local/src/terraformに取得した zip を保存している/usr/local/bin/terraformが root 所有で実行可能になっているterraform version -jsonのterraform_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 -json と terraform plan を確認し、意図しない差分を出さないように扱います。

