Ansible - 波浪号作为变量

Ansible - tilde as variable

我正在尝试将一个波浪字符放入一个变量中,我将在 Ansible 的模板中使用该变量,但对于我来说,我无法实现我想要的,因为波浪字符正在扩展各种奇怪的方式。

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

random_setting: "{{ some_var }}" 并得到这样的结果:random_setting: ~,即纯代字号,不添加引号。

相反,我一直得到这个:random_setting: '~'(这对我的用例来说是不可接受的)或这个:random_setting: ''(同样糟糕)。

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

我认为您可能将实际值与 Ansible 的输出混淆了。

如果你运行这个:

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

tilde-template.j2:

{{ var1 }}

并检查 result.txt 的内容,它将只包含波浪号。