TerraformをUbuntu18.04で使えるようにする

tfenv

tfenvはTerraformの複数バージョンの切り替えができるようになるツールです。Rubyで言うrbenvのようなもの。

# 参考: https://beyondjapan.com/blog/2019/02/tfenv-change-version/

git clone https://github.com/tfutils/tfenv.git ~/.tfenv
# for bash
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile
# for fish
echo 'set -x PATH $PATH $HOME/.tfenv/bin' >> ~/.config/fish/config.fish

# relogin

# 確認
tfenv --version

# show installavle versions
tfenv list-remote

# install 0.13.1
tfenv install 0.13.1

# choose version
tfenv use 0.13.1

# 作成しておくとterraformバージョンを指定できる
touch .terraform-version
echo "0.13.1" > .terraform-version

git-secrets

gitでクレデンシャルな情報をコミットしようとすると警告が出るようになる。terraformではクレデンシャルな情報が必要になるので、誤ってコミットしないように入れておくといいです。

# install
cd
git clone https://github.com/awslabs/git-secrets.git
cd git-secrets
sudo make install

# apply git-secrets
cd YOUR_REPOSITORY
git secrets --install
git secrets --register-aws

クレデンシャル情報のロード

Terraformでは以下のコードでアカウント情報を設定します。

# main.tf
provider "aws" {
  access_key = "ACCESS_KEY_HERE"
  secret_key = "SECRET_KEY_HERE"
  region = "ap-northeast-1"
}

しかしコード中にクレデンシャル情報を含めてコミットすることはしてはいけません。

Terraformでは環境変数に情報をセットすることでコード中に含めることを回避できます。

# for fish
set -Ux AWS_ACCESS_KEY_ID "key_id"
set -Ux AWS_SECRET_ACCESS_KEY "access_key"
set -Ux AWS_DEFAULT_REGION "ap-northeast-1"