Ansible lineinfile模块替换

时间:2017-11-10 06:31:40

标签: replace ansible line special-characters

我一直在尝试更换#$ ActionFileEnableSync选项 对于带有$ ActionFileEnableSync的/etc/rsyslog.conf文件。我用过替换模块

- replace:
      path: /etc/rsyslog.conf
      regexp: '^#\s*^$\s*ActionFileEnableSync on.*$'
      line: '$ActionFileEnableSync on'

我也试过使用lineinfile模块

 - lineinfile:
        dest: /etc/rsyslog.conf
        regexp: (^#\\$ActionFileEnableSync on)
        line: "$ActionFileEnableSync on"

但似乎都没有用,要么它不会替换或继续添加新行

1 个答案:

答案 0 :(得分:0)

使用lineinfile在文件中设置特定行。

你的正则表达式看起来不对。为什么' on'在正则表达式?是不是应该将值设置为' on'当现有的行说“关闭”时,

此外,regexp应该与已经' on' on注释掉的行匹配。否则,Ansible将在每次运行时附加一行。

尝试类似:

regexp: ^[#\s]*\$ActionFileEnableSync

这应该在注释标记和空格的任意组合之后替换$ ActionFileEnableSync。