表題の通り、.env
に書いた環境変数をAnsibleから取得する方法です。
dotenvをインストールしていない場合は、インストールして下さい。
gem install dotenv
読み込みたい環境変数を.env
ファイルに記述します。
.env
DB_HOST=example.com
Ansibleのタスクではlookup
関数を利用して環境変数を取得します。
- name: echo
shell: bash -lc "echo {{ lookup('env', 'DB_HOST') }}"
playbook実行時に、dotenv
コマンドとつけて実行すれば、.env
ファイルに書いた環境変数がlookup
コマンドで取得出来るようになります。
dotenv ansible-playbook playbook.yml -i inventory
ansible-dotenvというプラグインも存在しているようですが、環境変数の読み込みとansibleは別々の機能と考えたいので、個人的には先頭にdotenvコマンドをつけて実行するほうが好みです。
.env
ファイルはコミットしないように気をつけましょう!