Ansible "replace"正则表达式(一个或另一个)



我正在尝试替换配置文件中的值,使用替换模块。然而,我想知道是否有一个OR函数或类似的。

目前,我有以下播放:

- name: Replace "DebugLevel" variable-value"
become: yes
replace:
path: /etc/zabbix/zabbix_proxy.conf
regexp: '^# DebugLevel=3'
replace: 'DebugLevel=3'

这个剧本取消了DebugLevel=3的注释,但是当剧本第二次运行时,替换将不起作用,因为正则表达式不匹配(值已经未注释)。

我希望总是替换值,即使DebugLevel=3已经未注释。

这将使一个人所做的任何手动更改被覆盖,并且Ansible剧本将其设置回原始配置。

通过使用已经未注释的值创建一个新的正则表达式,我可以完成这一点,但是是否有一个更短的版本,通过使用"OR"在第一个正则表达式值之后或类似的东西?

我的意思的例子:

- name: Replace "DebugLevel" variable-value"
become: yes
replace:
path: /etc/zabbix/zabbix_proxy.conf
regexp: '^# DebugLevel=3' OR '^DebugLevel=.*'
replace: 'DebugLevel=3'

如果你想使用正则表达式,或者是|

- name: Replace "DebugLevel" variable-value"
replace:
path: /etc/zabbix/zabbix_proxy.conf
regexp: '^# DebugLevel=3|^DebugLevel=.*'
replace: 'DebugLevel=3'

如果配置文件应该包含每次特定的调试级别,则可以声明该行独立于注释和值而存在。

- name: Replace "DebugLevel" variable-value"
lineinfile:
path: /etc/zabbix/zabbix_proxy.conf
regexp: 'DebugLevel'
line: 'DebugLevel=3'

它将确保调试级别设置为给定值并处于活动状态。

  • lineinfile模块-管理文本文件中的行

相关内容

  • 没有找到相关文章

最新更新