如何用help blockinfile替换块文本?

时间:2016-10-11 09:52:05

标签: ansible ansible-playbook ansible-2.x

我需要在文件中替换块文本。它:

  passwd:         compat
  group:          compat
  shadow:         compat

由:

  passwd:         compat ldap
  group:          compat ldap
  shadow:         compat ldap

我不明白该怎么做。我读了man blockinfile,但是如何替换文本不知道:

- name: Update /etc/nsswitch.conf
  blockinfile:
    dest: /etc/nsswitch.conf
    marker: ""
    block: |
      passwd:         compat
      group:          compat
      shadow:         compat

请帮忙

1 个答案:

答案 0 :(得分:1)

我会使用lineinfile:

      - name: Update /etc/nsswitch.conf
        lineinfile: dest=/etc/nsswitch.conf regexp="{{ item.regexp }}" line="{{ item.line }}"
        with_items:
           - { regexp: '^passwd:.*compat', line: 'passwd: compat ldap' }
           - { regexp: '^group:.*compat', line: 'group: compat ldap' }
           - { regexp: '^shadow:.*compat', line: 'shadow: compat ldap' }
相关问题