[英]Ansible find replace is not working for 2 lines
- name: Cassandra cassandra.yaml
lineinfile:
dest: "{{ home}}/conf/cassandra.yaml"
state: present
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
# backup: yes
with_items:
- { regexp: "data_file_directories:", line: "data_file_directories: \n - {{ data_directory }}" }
在第一個文件中,第一次運行看起來不錯,但是在第二個文件中,它繼續添加新行。 為了第二次運行需要做的事情看起來也不錯。
data_file_directories:
- /mount1/data
第二次
data_file_directories:
- /mount1/data
- /mount1/data
- /mount1/data
我想要一些東西
data_file_directories:
- /mount1/data
lineinfile
-顧名思義-是確保目標文件中有特定行的模塊; 沒有線 。
要處理多行:
將regexp
模塊與matchgroup和backreference一起使用―確切的實現取決於目標文件中的其他構造,
使用blockinfile
模塊 -確切的實現取決於目標文件中的其他構造,
或( 最好 )使用template
模塊 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.