![[Google Cloud]Cloud ShellのプリインストールからTerraform CLIが含まれなくなりました](https://images.ctfassets.net/ct0aopd36mqt/1gUNl7b59TLGS3PAH3C234/b9af3cdfdf2389f9f8a1e7b39105ca8f/googlecloud_logo.png?w=3840&fm=webp)
[Google Cloud]Cloud ShellのプリインストールからTerraform CLIが含まれなくなりました
2026/6/20付けの更新で Cloud ShellのプリインストールからTerraform CLIが含まれなくなりました。
Cloud Shell no longer includes the Terraform CLI by default. Users can customize their environment to install the CLI on environment startup, or install the binary to their home directory to persist the install between sessions.
以前はGoogle CloudのCloud ShellのプリインストールにTerraform CLIが含まれており、Cloud Shellを開いてすぐTerraformが使えるのでハンズオン等で活用していました。
実際に手を動かして、動作への影響とTerraform CLIのインストール手順を確認してみます。
terraformを実行すると何が起きるか
Cloud ShellをRestartして新しい環境でterraformを実行してみます。
$ terraform
Follow the instructions at https://developer.hashicorp.com/terraform/install to install terraform, or run the commands below:
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
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
sudo apt update && sudo apt install terraform
bash
To persist the installation between sessions, either add the above commands to $HOME/.customize_environment, or install the terraform binary in your home directory.
command not foundではなく、インストール手順を案内するメッセージが表示されます。
このメッセージがどこから来ているのか、type・which・catで調べてみます。
$ type terraform
terraform is hashed (/google/bin/terraform)
$ which terraform
/google/bin/terraform
$ cat "$(which terraform)"
#!/bin/bash
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
cat $SCRIPT_DIR/terraform-install.txt
$ grep -rn "terraform" ~/.bashrc ~/.bash_profile ~/.profile /etc/bash.bashrc /etc/profile.d/*.sh 2>/dev/null
(該当なし)
.bashrcのようなシェル設定ではなく、/google/bin/terraformというスタブスクリプトによるものでした。中身は同じディレクトリのterraform-install.txtをcatするだけです。terraformというコマンド名自体はPATH上に残っています。実行すると、未インストールである旨とインストール手順を表示するスタブに差し替えられている、というのが今回の変更の実態です。
対処法
まずはスタブメッセージ通りに、HashiCorp公式のapt手順をそのまま実行してみます。
参考: Install | Terraform | HashiCorp DeveloperのUbuntu/Debian向け手順
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
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
sudo apt update && sudo apt install terraform
$ terraform --version
Terraform v1.16.0
on linux_amd64
これでインストールできました。ただ、この状態でCloud ShellをRestartすると、terraformは消えてスタブに戻ります。terraform --versionを実行しても、最初に見たのと同じ案内メッセージが表示されました。
$ type terraform
terraform is hashed (/google/bin/terraform)
apt installは/usr配下にバイナリを置きます。/usrはセッションごとに作り直される領域であり、$HOMEの永続ディスクとは別だからです。Cloud Shell の仕組みでも、$HOME以外にインストールしたソフトウェアはインスタンス終了後に永続化されないと説明されています。
恒久的に使うには、$HOME/.customize_environmentにインストール手順を書いておく方法を使います。このファイルはCloud Shell起動時に自動実行されます。
cat <<'EOF' > $HOME/.customize_environment
#!/bin/bash
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
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
sudo apt update && sudo apt install -y terraform
EOF
chmod +x $HOME/.customize_environment
作成後にRestartして確認したところ、terraformが使えるようになっていました。
$ terraform --version
Terraform v1.16.0
on linux_amd64
/var/log/customize_environmentにも実行ログが残っていて、0 upgraded, 1 newly installedとapt installが自動で走ったことが分かります。ログの途中にE: Could not get lock /var/lib/apt/lists/lockという行が一瞬混ざっていました。起動直後の他のapt処理との競合と思われますが、最終的にはリトライして完走していました。
バージョン管理まで見据えるなら、tenvを使う方法もあります。tenvはTerraform・OpenTofu・Terragrunt・Atmosに対応したバージョンマネージャーです。
Cloud Shellのホームディレクトリにインストールしておけば、プロジェクトごとに使うバージョンを切り替えられます。
おわりに
プリインストールされるTerraform CLIのバージョンが古いことは気になっており、以前最新版をインストールするブログを書きました。
プリインストールに含まれなくなったことは不便ですが、バージョンを選ぶきっかけにもなります。
Cloud ShellでTerraformを使う場合は、.customize_environment等の永続化の設定を忘れずに行うようにしたいですね。



