Ansible lineinfile duplicates line

后端 未结 3 1125
無奈伤痛
無奈伤痛 2021-02-01 02:00

I have a simple file at /etc/foo.txt. The file contains the following:

#bar

I have the following ansible playbook task to uncomment the line ab

3条回答
  •  遥遥无期
    2021-02-01 02:32

    You need to add backrefs=yes if you don't want to change your regular expression.

    - name: test lineinfile
      lineinfile: backup=yes state=present dest=/etc/foo.txt
                  regexp='^#bar' backrefs=yes
                  line='bar'
    

    This changes the behavior of lineinfile from:

     find
     if found
       replace line found
     else
       add line
    

    to:

     find
     if found
       replace line found
    

    In other words, this makes operation idempotent.

提交回复
热议问题