The template module ensures idempotence. So, if there is no diff between 
the files and the templates, the task should not return "changed", thus not 
invoking the handler. However, sometimes things may change on the server 
(i.e. permissions, ownership) because of various reasons. For that, you can 
use *changed_when* to rule out "false positives".

You could also simply remove the "Start Splunk" task and only rely on 
config files changes to trigger the restart of the service. This could make 
sense if you don't install the service through a package manager.

On Friday, 27 March 2015 14:55:20 UTC+1, Kyle wrote:
>
> Newish to Ansible.
>
> I'm setting up a playbook for Splunk and it works great, the only part I'm 
> unsure of is how to prevent a restart after splunk had just started. The 
> whole play and the handler is below.
>
> So on initial installation, I'm just trying to prevent the following, 
> which is needless:
> TASK: [splunk | Start Splunk] 
> *************************************************
> changed: [host1]
>
> NOTIFIED: [splunk | restart splunk] 
> *******************************************
> changed: [host1]
>
>
> # config/roles/splunk/tasks/main.yml
> - name: Evaluating forwarder package
>   yum: name=splunkforwarder state=latest
>   tags: splunk
>
> - name: configure outputs.conf
>   template:
>     src=outputs.conf.j2 
> dest=/opt/splunkforwarder/etc/system/local/outputs.conf owner=splunk 
> group=splunk mode=0644
>   notify:
>     - restart splunk
>   tags: splunk
>
> - name: configure inputs.conf
>   template:
>     src=linux.inputs.conf.j2 
> dest=/opt/splunkforwarder/etc/system/local/inputs.conf owner=splunk 
> group=splunk mode=0644
>   notify:
>     - restart splunk
>   tags: splunk
>
> - name: Accept license and configure boot start
>   command: /opt/splunkforwarder/bin/splunk enable boot-start -user splunk 
> --accept-license creates=/etc/init.d/splunk
>   tags: splunk
>   
> - name: Correct permissions on init script
>   file: path=/etc/init.d/splunk mode=0755
>   tags: splunk
>   
> - name: Correct permissions on splunk directory
>   file: path=/opt/splunkforwarder state=directory owner=splunk 
> group=splunk recurse=yes
>   tags: splunk
>   
> - name: Start Splunk
>   service: name=splunk state=started
>   tags: splunk
>
> And my handler looks like this:
> #  config/roles/splunk/handlers/main.yml
> - name: restart splunk
>   service: name=splunk state=restarted
>

-- 
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/183dc927-feca-471a-b00c-9a630c3c004b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to