Check If Service Exists With Ansible
Answer :
See the service_facts module, new in Ansible 2.5.
- name: Populate service facts   service_facts: - debug:     msg: Docker installed!   when: "'docker' in services" Of course I could also just check if the wrapper script exists in /etc/init.d. So this is what I ended up with:
  - name: Check if Service Exists     stat: path=/etc/init.d/{{service_name}}     register: service_status    - name: Stop Service     service: name={{service_name}} state=stopped     when: service_status.stat.exists     register: service_stopped It would be nice if the "service" module could handle "unrecognized service" errors.
This is my approach, using the service command instead of checking for an init script:
- name: check for apache   shell: "service apache2 status"   register: _svc_apache   failed_when: >     _svc_apache.rc != 0 and ("unrecognized service" not in _svc_apache.stderr)  - name: disable apache   service: name=apache2 state=stopped enabled=no   when: "_svc_apache.rc == 0" - check the exit code of "service status" and accept the exit code 0 when the output contains "unrecognized service"
- if the exit code was 0, that service is installed (stopped or running)
Comments
Post a Comment