I can check if a service is started(as below), but how do i use the service facts in Ansible to loop\wait until a service is active?
- name: Ensure myservice is in a running state
service:
name: myservice
state: started
I can check if a service is started(as below), but how do i use the service facts in Ansible to loop\wait until a service is active?
- name: Ensure myservice is in a running state
service:
name: myservice
state: started
This is very similar to @zigarn answer above, In my case it was not enough to know that the service was started or running, i needed to know it was active, hence im posting what i went with. Thank you to all for your help
- name: Ensure myservice is in a running state
service:
name: myservice
state: started
register: myserviceDetails
until: myserviceDetails.status.ActiveState == "active"
retries: 15
delay: 20
For a generic solution with any type of service, the solution would be to loop on getting service status until it's 'running'.
To achieve that, you can use the service_facts module with an until loop:
- name: Wait for service 'myservice' to be running
service_facts:
register: result
until: result.ansible_facts.services['some.service'].state == 'running'
retries: 10
delay: 5