Ansible - 代替变量

时间:2016-10-14 11:44:17

标签: ansible jinja2 ansible-playbook

我正在尝试将一个波形符号放在一个变量中,我将在Ansible的模板中使用该变量,并且在我的生活中,我无法达到我想要的效果,因为波浪号正在各种各样的奇怪的方式。

我想要实现的是在我的vars文件中定义some_var,以便我可以在这样的模板中使用它:

random_setting: "{{ some_var }}"并得到此结果:random_setting: ~,即纯正的代字号,未添加引号。

相反,我继续这样做:random_setting: '~'(我的用例不接受)或者:random_setting: ''(同样糟糕)。

我的问题是:我如何逃避波浪号角色,以便我可以使用它而不用引号括起来或以某种模糊的方式展开?我已经尝试了一些技巧,包括使用base64编码~字符并在Ansible中使用| b64decode过滤器,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

我认为你可能会把真正的价值与Ansible的输出混淆。

如果你运行:

---
- hosts: localhost
  connection: local
  vars:
    var1: "~"
  tasks:
    - template: src=tilde-template.j2 dest=result.txt

tilde-template.j2

{{ var1 }}

并检查result.txt的内容,它只包含代字号。