如何通过烦人的剧本评论多行

时间:2019-07-20 12:26:19

标签: ubuntu ansible

我可以用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

此解决方案可以吗?有更好的方法吗?

但是,如果我想注释行的倍数,该怎么办?

2 个答案:

答案 0 :(得分:1)

您的正则表达式可以吗?从docsReplace 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开头的行。