sitateruでサービス・プロダクトを担当している北爪です。
インフラを見ることもあり、今日はShellでの環境変数の扱い方について書きます。
プロジェクトごとに環境変数/クレデンシャルを管理する
複数のプロジェクトに関わっているときに、プロジェクトごとの環境変数やAWSのkey/secretsなど環境変数に設定し管理する必要があることがあります。
Shellを使って管理する一つの方法を記述します。
準備
プロジェクトごとにクレデンシャルフェイルを作る
クレデンシャルファイル置き場を作ります
$ mkdir ~/.crds/
プロジェクトごとにプロジェクトファイルを作ったディレクトリ以下に置きます。
ディレクトリはinvisibleファイルにしておきます。
$ touch ~/.crds/pj-1
ファイルに必要なクレデンシャルを記述します
export AWS_ACCESS_KEY_ID==XXXXX
export AWS_SECRET_ACCESS_KEY==XXXXX
export AWS_DEFAULT_REGION=ap-northeast-1
export TF_VAR_secret_key=XXXXX
export TF_VAR_rds_password=XXXXX
読み込みと切り替え
設定した環境変数群を以下の方法でプロジェクトごとに読み込みます。
リセットはされないので、別プロジェクトに変える際は、あらたにshellを立ち上げるようにします。
プロジェクトのクレデンシャルを読み込む
source コマンドをつかってシェルに読み込めば(dot operatorでもOK)
$ source ~/.crds/pj-1
or
$ . .~/.crds/pj-1
別のプロジェクトのクレデンシャルを読み込む
複数のプロジェクトファイルを作ることで、クレデンシャルを別で読み込むことができます。
$ source ~/.crds/pj-2
Tips
初期読み込みが必要な場合は、 bashrcやzshrcなどに、読み込みコマンドを記述しておけます
まとめ
クレデンシャルファイルを特定のディレクトリに作り、基本コマンドで呼び出すだけです。一覧性も高く、管理しやすくなります。