※ 1/29: コピペミスで記述位置が同じになってたので修正しました
environment
を使う。
PYTHONPATH = /usr/lib/python3.6/site-packages
という環境変数を定義するのであれば、
1. playに書く場合
- hosts: localhost gather_facts: False environment: PYTHONPATH: /usr/lib/python3.6/site-packages tasks: [...]
2. taskに書く場合
- hosts: localhost gather_facts: False tasks: - expect: [...] environment: PYTHONPATH: /usr/lib/python3.6/site-packages
書いてて思ったけど、環境変数って環境によって異なる値を取りうるものを定義するものだから、playbookにハードコーディングしちゃったら微妙かな。。。
あ、インベントリに変数定義してそれを参照すれば良さげかな?
playbookには以下のように変数参照する環境変数(ややこしい表現だ)
environment: PYTHONPATH: "{{ python_path }}"
inventoryのvars
のグループ変数など使って変数定義
[all:vars] python_path=/usr/lib/python3.6/site-packages
この前Python3 + 追加モジュールが実行に必要なplaybookを書いて、環境変数PYTHONPATH
が定義されていないといけないのに、うっかりこれ無しで実行してしまったので、playbookの定義に埋め込めたらミスが減るよねーと思った次第。