理系学生日記

おまえはいつまで学生気分なのか

Ansibleで環境変数の値を使う

Ansible で環境変数の値をそのまま使いたいということがありました。 というのも、プライベートでは kiririmode というハンドルネームを使っている関係上ホームディレクトリは /Users/kiririmode なのだけれど、会社だと別のユーザ名なので、このあたりの差異を吸収したい。ホームディレクトリのパスは当然 HOME 環境変数で取れるので、これを使えば楽なはず。

こういう用途のためには、lookup プラグインを使う。lookup プラグインは、別に環境変数に特化したものではなく、"外部" から値を取り出すときに使えるプラグインで、ファイルからだったり、redis からだったり、etcd だったり、とりあえず様々。 環境変数なら lookup('env', 'HOME') とすれば、HOME 環境変数が取れる。 group_vars あたりで

|yaml| user: "{{ lookup('env', 'USER') }}" homedir: "{{ lookup('env', 'HOME') }}" ||< とかやっておけば良いでしょう。