# How to propagate changes to previously-applied tasks (e.g removing files, changing crons, etc)

**URL:** <https://forum.ansible.com/t/how-to-propagate-changes-to-previously-applied-tasks-e-g-removing-files-changing-crons-etc/18775>\
**Category:** Ansible Project\
**Created:** [July 15, 2015, 6:00pm UTC](https://forum.ansible.com/t/how-to-propagate-changes-to-previously-applied-tasks-e-g-removing-files-changing-crons-etc/18775 "2015-07-15T18:00:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andrew\_Martin](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Andrew\_Martin](https://forum.ansible.com/u/Andrew_Martin)\
**Post date:** [July 15, 2015, 6:00pm UTC](https://forum.ansible.com/t/how-to-propagate-changes-to-previously-applied-tasks-e-g-removing-files-changing-crons-etc/18775/1 "2015-07-15T18:00:06Z")

</div>

Hello,

I have really enjoyed using Ansible to be able to completely template new servers that I set up, but one thing I have not yet figured out how to do in my workflow is deal with changes that occur after a playbook has been run on a server. For example, let’s say that I have a cron task that creates a cron:

> - name: create my cron  
> cron: name=“My Cron version 1.0” job=/usr/local/bin/cron.sh minute=1

I run the playbook on my servers and this cron is added to the crontab, good. However, later I decide to change the name, the job, or some other attribute. If I do that, Ansible will add a new entry to the crontab but leave this old one around. One solution would be to add a state=absent task, but that involves duplicating or adding some legacy code to my playbook:

> - name: create my cron (old)  
> cron: name=“My Cron version 1.0” job=/usr/local/bin/cron.sh minute=1 state=absent

> 

> - name: create my cron  
> cron: name=“My Cron version 1.1” job=/usr/local/bin/cron.sh minute=1

The best way to handle this that I can think of is:

1. review changes made to playbook, determine if they change any pre-existing files, crons, etc
2. if changes to pre-existing files are made, duplicate corresponding tasks and add a state=absent entry with the old names, run playbook to remove old data
3. remove duplicate tasks, commit changes to playbooks repository

Is there a better way for ansible to handle removing old data from a previous version of a playbook?

Thanks,

Andrew

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [July 15, 2015, 6:34pm UTC](https://forum.ansible.com/t/how-to-propagate-changes-to-previously-applied-tasks-e-g-removing-files-changing-crons-etc/18775/2 "2015-07-15T18:34:57Z")

</div>

not really, since you could have 10 diff plays for adding cron,  
ansible won't know about the other 9 when running 1, it is up to you  
too keep track. I just normally create 1 off plays and put them in a  
cleanup/ dir that i can rerun in case i suspect something was missed  
or someone reran an old version.

---

<div class="post-metadata">

**Author:** ![Andrew\_Martin](https://avatars.discourse-cdn.com/v4/letter/a/77aa72/32.png) [@Andrew\_Martin](https://forum.ansible.com/u/Andrew_Martin)\
**Post date:** [July 21, 2015, 3:51am UTC](https://forum.ansible.com/t/how-to-propagate-changes-to-previously-applied-tasks-e-g-removing-files-changing-crons-etc/18775/3 "2015-07-21T03:51:27Z")

</div>

Brian,

Thanks for the clarification.

Andrew
