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
的内容,它将只包含波浪号。
我正在尝试将一个波浪字符放入一个变量中,我将在 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
的内容,它将只包含波浪号。