【Terraform】Terraform ~ direnv / プロジェクト隔離 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/01/14/000000

の続き。

Terraform の本読んで勉強してて
direnv がでてきたので、メモ。

目次

【1】direnv
【2】環境設定
 1)サポートOS
 2)インストール
 3)フックの設定
【3】Quick demo

【1】direnv

ディレクトリ毎に環境変数を定義して、
そのディレクトリがカレントになった時だけ
環境変数を有効/無効にしてくれるツール

【2】環境設定

1)サポートOS

* Linux
* Mac
* Windows

https://github.com/direnv/direnv/releases

Windowsのついて

本ではサポート外って言ってたけど
今は、exe があるみたい

https://loochs.org/blog/computer/shell/direnv-installation-for-windows/

2)インストール

https://github.com/direnv/direnv/blob/master/docs/installation.md#from-binary-builds

sudo apt install direnv
or
curl -sfL https://direnv.net/install.sh | bash
# ...
# The direnv binary is now available in:
#
#    /home/user/.tfenv/bin/direnv
# ...
# For other shells, see https://direnv.net/docs/hook.html
#
# Thanks!

direnv --version

3)フックの設定

* direnv をインストールした後、ディレクトリ移動した際に
 自動的に direnv を実行するため、シェルにフックを指定する必要がある

https://github.com/direnv/direnv/blob/master/docs/hook.md
~/.bashrc

vi ~/.bashrc
~~~~
# Add this command
eval "$(direnv hook bash)"
~~~~

source ~/.bashrc

【3】Quick demo

https://github.com/direnv/direnv#quick-demo

# Create a new folder for demo purposes.
$ mkdir ~/my-project
$ cd ~/my-project

# Show that the FOO environment variable is not loaded.
$ echo ${FOO-nope}
nope
# デフォルト「nope」が表示

# Create a new .envrc. This file is bash code that is going to be loaded by direnv.
$ echo export FOO=foo > .envrc
.envrc is not allowed
# って表示されたら以下を行う(表示されない場合は、設定がうまくいっていない)
# 「ls -al」で「.envrc」が存在しているはず(★このファイルがキモ★)

# The security mechanism didn't allow to load the .envrc. Since we trust it,
# let's allow its execution.
$ direnv allow .
direnv: reloading
direnv: loading .envrc
direnv export: +FOO

# Show that the FOO environment variable is loaded.
$ echo ${FOO-nope}
foo
# 今度は、環境変数「FOO=foo」が適用されて表示された

# 別のディレクトリにいって、適用されていないことを確認してみる
# Exit the project
$ cd ..
direnv: unloading

# And now FOO is unset again
$ echo ${FOO-nope}
nope

参考文献

https://qiita.com/kompiro/items/5fc46089247a56243a62
direnvのインストールから動作確認までを解説 | ジコログ

関連記事

Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/05/03/000000
Terraform ~ tfenv / バージョン管理 ~
https://dk521123.hatenablog.com/entry/2023/01/14/000000