簡體   English   中英

Ansible“替換”正則表達式(一個或另一個)

[英]Ansible "replace" regexp (one OR the other)

我正在嘗試使用替換模塊替​​換配置文件中的值。 但是,我想知道是否有 OR 函數或類似函數。

目前,我有以下玩法:

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

此播放取消注釋DebugLevel=3 ,但是當第二次運行 playbook 時,替換將不起作用,因為正則表達式不匹配(值已取消注釋)。

即使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'

如果你想使用正則表達式 or 是|

- 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'

它將確保調試級別設置為給定值並處於活動狀態。

文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM