如何转义 Ansible lineinfile 模块中的 '#' 注释字符?
How to escape the '#' comment character within Ansible lineinfile module?
如何转义 Ansible 的 lineinfile 模块中的字符?
这是我要在服务器上插入的行:
EMAIL='hi@demo.com' # Server notification email address enter only 1 address
但是当我尝试以下操作时,Ansible 由于 YAML 错误而拒绝解析它:
line="EMAIL='{{ email_address }}' # Server notification email address enter only 1 address"
我猜这是因为我有一个奇怪的双引号、单引号、等号和井号的组合。
问题确实是字符串中的 #
- 无论出于何种原因。
尽管您可以使用此技巧轻松防止解析错误:
line="EMAIL='{{ email_address }}' {{ '#' }} Server notification email address enter only 1 address"
对于较长形式的评论或为了可读性,您还可以将评论添加为 vars:
。
name: Do something
vars:
comment: '# Server notification email address enter only 1 address'
lineinfile:
...
line="EMAIL='{{ email_address }}' {{ comment }}"
如何转义 Ansible 的 lineinfile 模块中的字符?
这是我要在服务器上插入的行:
EMAIL='hi@demo.com' # Server notification email address enter only 1 address
但是当我尝试以下操作时,Ansible 由于 YAML 错误而拒绝解析它:
line="EMAIL='{{ email_address }}' # Server notification email address enter only 1 address"
我猜这是因为我有一个奇怪的双引号、单引号、等号和井号的组合。
问题确实是字符串中的 #
- 无论出于何种原因。
尽管您可以使用此技巧轻松防止解析错误:
line="EMAIL='{{ email_address }}' {{ '#' }} Server notification email address enter only 1 address"
对于较长形式的评论或为了可读性,您还可以将评论添加为 vars:
。
name: Do something
vars:
comment: '# Server notification email address enter only 1 address'
lineinfile:
...
line="EMAIL='{{ email_address }}' {{ comment }}"