我刚刚写了一个小的Ansible查找插件,用于从pass
获取密码。我已在group_vars/all.yml
:
pass_store: "{{ inventory_dir }}/passwords"
在我的插件中,我获取此变量并将其传递给os.environ["PASSWORD_STORE_DIR"]
。
问题是该值尚未评估。使用变量的文字值,而不是评估值。
例如:
os.environ["PASSWORD_STORE_DIR"] = variables["pass_store"]
我现在希望环境变量PASSWORD_STORE_DIR
包含:
/home/tomas/my-project/passwords
相反它包含:
{{ inventory_dir }}/passwords
Ansible API是否提供了某种方法来评估包含这样的模板表达式的变量?
答案 0 :(得分:2)
你可以试试这个:
os.environ["PASSWORD_STORE_DIR"] = self._templar.template(variables["pass_store"])
这将评估变量内容并用适当的值替换Jinja标记。