[英]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.