簡體   English   中英

Ansible查找替換不適用於2行

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

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