# Lineinfile Idempotency issue

**URL:** <https://forum.ansible.com/t/lineinfile-idempotency-issue/22091>\
**Category:** Ansible Project\
**Created:** [July 22, 2016, 5:23pm UTC](https://forum.ansible.com/t/lineinfile-idempotency-issue/22091 "2016-07-22T17:23:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![GANA\_SAGAR](https://avatars.discourse-cdn.com/v4/letter/g/f6c823/32.png) [@GANA\_SAGAR](https://forum.ansible.com/u/GANA_SAGAR)\
**Post date:** [July 22, 2016, 5:23pm UTC](https://forum.ansible.com/t/lineinfile-idempotency-issue/22091/1 "2016-07-22T17:23:54Z")

</div>

Is lineinfile really idempotent ?? I am using it to uncomment the logrorate option in logrotate.conf. Everytime I run the playbook. This play is being executed every single time and add the word compress at the bottom after every run. Am I doing something wrong ??

- name: Enabling the logrotate option for linux servers  
lineinfile: dest=/etc/logrotate.conf  
backup=yes  
regexp=“^#compress”  
line=“compress”  
create=yes  
when: ansible\_distribution == “RedHat”

Thanks in Advance  
Sagar

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [July 23, 2016, 2:03pm UTC](https://forum.ansible.com/t/lineinfile-idempotency-issue/22091/2 "2016-07-23T14:03:21Z")

</div>

> Is lineinfile really idempotent ??

Yes and no, it depend on how you use it.

> I am using it to uncomment the  
> logrorate option in logrotate.conf. Everytime I run the playbook. This play  
> is being executed every single time and add the word compress at the bottom  
> after every run. Am I doing something wrong ??

It is actually working as the documentation is describing.  
If it can't find the regexp expression the line will be added to the file, default is EOF since insertafter take presidence and is default set to EOF.

Someone has created a issue about this behavior.  
[https://github.com/ansible/ansible-modules-core/issues/3975](https://github.com/ansible/ansible-modules-core/issues/3975)

> &nbsp;&nbsp;- name: Enabling the logrotate option for linux servers  
> &nbsp;&nbsp;&nbsp;&nbsp;lineinfile: dest=/etc/logrotate.conf  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backup=yes  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;regexp="^#compress"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line="compress"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create=yes  
> &nbsp;&nbsp;&nbsp;when: ansible\_distribution == "RedHat"

If you add backrefs=yes it will work as you expect, it disables insertafter.

---

<div class="post-metadata">

**Author:** ![GANA\_SAGAR](https://avatars.discourse-cdn.com/v4/letter/g/f6c823/32.png) [@GANA\_SAGAR](https://forum.ansible.com/u/GANA_SAGAR)\
**Post date:** [July 25, 2016, 2:10pm UTC](https://forum.ansible.com/t/lineinfile-idempotency-issue/22091/3 "2016-07-25T14:10:56Z")

</div>

Thanks very much Mr Olstad 🙂
