如何在Ansible插件中评估模板表达式?

时间:2017-06-28 13:05:14

标签: ansible

我刚刚写了一个小的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是否提供了某种方法来评估包含这样的模板表达式的变量?

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

os.environ["PASSWORD_STORE_DIR"] = self._templar.template(variables["pass_store"])

这将评估变量内容并用适当的值替换Jinja标记。