読者です 読者をやめる 読者になる 読者になる

理系学生日記

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

忍者TOOLS

Ansibleで環境変数の値を使う

technology environment

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

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

user: "{{ lookup('env', 'USER') }}"
homedir: "{{ lookup('env', 'HOME') }}"

とかやっておけば良いでしょう。