I have a list that I loop over to copy files. I want to restart a service only if that file has been changed on the remote system. What is the best method to restart a service on only on a system if the file was copied to the system.
I have a list that I loop over to copy files. I want to restart a service
only if that file has been changed on the remote system. What is the best
method to restart a service on only on a system if the file was copied to
the system.
Here you say system and system.
If the system copies a new syslog file restart syslog.
I know there are handlers and notify, but I only want to restart on a
specific system if it gets updated.
And system again, so i guess this is system is the same host and notify is perfect in that scenario.
On my ansible server I have files that I want to copy to remote servers. I only want to restart a service if a specific file was copied and not just any other file. My example shows two files, but I only want to restart the syslog service if the syslog file is copied. Additionally I don’t want to restart the syslog service on all of the inventoried servers just the ones with the updated file.
That's exactly what notify/handlers does, it only notify if it's a change.
So if you add a key to your list called notify then you can have notify: '{{ item.notify | default(omit) }}' on the task.
So any entry in the list that don't have notify key will just omit notify entirely.