Here is the documentation for lineinmodule regexp section
> The regular expression to look for in every line of the file.
> For state=present, the pattern to replace if found. Only the last line
> found will be replaced.
> For state=absent, the pattern of the line(s) to remove.
> If the regular expression is not matched, the line will be added to the
> file in keeping with`insertbefore` or `insertafter` settings.
> *When modifying a line the regexp should typically match both the initial
> state of the line as well as its state after replacement by line to ensure
> idempotence.*
> Uses Python regular expressions. See
> http://docs.python.org/2/library/re.html.
>
Since you are modifying the line, the regexp should match the initial
state, i.e. *"set mouse=a *and the final state, i.e., *set mouse=r*
So the task that you should use is as follows
- name: Uncommenting mouse=a in /etc/vim/vimrc
lineinfile:
path: /etc/vim/vimrc
*regexp: '^"?set mouse=[ar]'*
line: 'set mouse=r'
This is my first response in ansible group. Be gentle.
On Thursday, March 7, 2019 at 2:59:29 PM UTC+5:30, Jean Carlo wrote:
>
> Hello
> I want to change the configuration of vim, in order to do set mouse=r.
>
> At the beginning this line is commented by default. Using inlinefile
> module, I check by regexp the line commented and I replace it with the new
> line like this:
>
>
>
> - name: Uncommenting mouse=a in /etc/vim/vimrc
> lineinfile:
> path: /etc/vim/vimrc
> regexp: '^"set mouse=a'
> line: 'set mouse=r'
>
> First runs is okay, but the second run ansible append another line to the
> file like this:
>
>
> TASK [cassandra_preinstall : Uncommenting mouse=a in /etc/vim/vimrc]
> ***************************************************************************************************************************************
> --- before: /etc/vim/vimrc (content)
> +++ after: /etc/vim/vimrc (content)
> @@ -56,3 +56,4 @@
> if filereadable("/etc/vim/vimrc.local")
> source /etc/vim/vimrc.local
> endif
> +set mouse=r
>
> It is like lineinfile does not care about the regexp result that should be
> empty.
>
> What I am missing ?
>
>
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/3e2947d1-c1b0-477a-a543-51609662bfdb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.