- 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
答案 0 :(得分:0)
lineinfile
- 正如其名称所示 - 是一个模块,用于确保某个行位于目标文件中;不是行。
处理多行:
将regexp
module与matchgroup和backreference一起使用 - 具体实现取决于目标文件中的其他构造,
使用blockinfile
module - 具体实现取决于目标文件中的其他构造,
或(最好)使用template
module。