如何转义 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 }}"