我可以用ansible剧本注释一行
- name: Comment out a line
replace:
dest: /etc/nova/nova.conf
regexp: '^connection = sqlite:////var/lib/nova/nova.sqlite'
replace: '#connection = sqlite:////var/lib/nova/nova.sqlite'
tags: update-nova.conf
此解决方案可以吗?有更好的方法吗?
但是,如果我想注释行的倍数,该怎么办?
答案 0 :(得分:1)
您的正则表达式可以吗?从docs:
Replace all instances of a particular string in a file using a back-referenced regular expression
您可以共享部分nova.conf
文件吗?
您还可以做什么:
- name: Comment out a line
replace:
dest: /etc/nova/nova.conf
regexp: "{{ item.exp }}"
replace: "{{ item.replace }}"
tags: update-nova.conf
with_items:
- { exp: '^connection = sqlite:////var/lib/nova/nova.sqlite', replace: '#connection = sqlite:////var/lib/nova/nova.sqlite'}
- { exp: 'test', replace: '#test'}
答案 1 :(得分:0)
您可以使用反向引用加|
和带有不同正则表达式的括号。
regexp: '^((1|2).*)$'
replace: '#\1'
这将注释所有以1或2开头的行。