Site cover image

Site icon imageViserhaut Tech Blog

This blog is a blog that records the daily learning of an infrastructure engineer. It aims to "Viser Haut" or strive for the highest.

ArmベースのインスタンスにTerragruntをインストールする方法

tgenv install が誤って terragrunt_linux_amd64 をインストールしている場合でも、arm64 環境で terragrunt_linux_arm64 をインストールする方法があります。

以下の手順で対応可能です。


1. 手動でアーキテクチャを指定する

tgenv は通常、terragrunt のバイナリを公式リリースから取得しますが、アーキテクチャの自動判定に誤りがある場合があります。環境変数を利用して、アーキテクチャを手動で指定します。

手順: TGENV_ARCH 環境変数を設定する
export TGENV_ARCH=arm64
tgenv install <バージョン>
  • TGENV_ARCHarm64 に指定することで、terragrunt_linux_arm64 がダウンロードされます。

2. tgenv のアーキテクチャ判定を修正する

tgenv の内部スクリプトでアーキテクチャを確認している部分があるため、これを一時的に上書きします。

手順: Dockerfileで環境変数を追加

Dockerfile 内に以下のような行を追加します:

ENV TGENV_ARCH=arm64
RUN tgenv install $(cat .terragrunt_version)

3. 手動でterragruntをダウンロード

tgenv をバイパスして、arm64 バイナリを手動でダウンロードし、tgenv のディレクトリに配置します。

手順:
VERSION=$(cat .terragrunt_version)
ARCH=arm64
wget https://github.com/gruntwork-io/terragrunt/releases/download/v${VERSION}/terragrunt_linux_${ARCH}
chmod +x terragrunt_linux_${ARCH}
mv terragrunt_linux_${ARCH} ~/.tgenv/versions/${VERSION}/terragrunt

この方法では、正しいアーキテクチャのバイナリをダウンロードして手動で配置します。


4. 確認

以下のコマンドで正しいバイナリがインストールされたかを確認します:

terragrunt --version
file $(which terragrunt)

file コマンドの出力に aarch64 または ARM64 と表示されれば成功です。


まとめ
  • 環境変数 TGENV_ARCH=arm64 を設定することで、tgenv が適切なバイナリをインストールするよう強制できます。
  • 手動で terragrunt バイナリをダウンロードして、tgenv ディレクトリに配置することも可能です。