- name: skip unsupported distros meta: end_host when: ansible_distribution in ['Alpine'] - name: install the test daemon script copy: src: ansible_test_service.py dest: /usr/sbin/ansible_test_service mode: '755' - name: rewrite shebang in the test daemon script lineinfile: path: /usr/sbin/ansible_test_service line: "#!{{ ansible_python_interpreter | realpath }}" insertbefore: BOF firstmatch: yes - block: # determine init system is in use - name: detect sysv init system set_fact: service_type: sysv when: - ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux'] - ansible_distribution_version is version('6', '>=') - ansible_distribution_version is version('7', '<') - name: detect systemd init system set_fact: service_type: systemd when: (ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux'] and ansible_distribution_major_version is version('7', '>=')) or ansible_distribution == 'Fedora' or (ansible_distribution == 'Ubuntu' and ansible_distribution_version is version('15.04', '>=')) or (ansible_distribution == 'Debian' and ansible_distribution_version is version('8', '>=')) or ansible_os_family == 'Suse' - name: detect upstart init system set_fact: service_type: upstart when: - ansible_distribution == 'Ubuntu' - ansible_distribution_version is version('15.04', '<') - name: detect rc init system set_fact: service_type: rc when: - ansible_distribution.lower().endswith('bsd') - name: display value of ansible_service_mgr debug: msg: 'ansible_service_mgr: {{ ansible_service_mgr }}' - name: setup test service script include_tasks: '{{ service_type }}_setup.yml' - name: execute tests import_tasks: tests.yml always: - name: disable and stop ansible test service service: name: ansible_test state: stopped enabled: false # cleaning up changes made by this playbook - include_tasks: '{{ service_type }}_cleanup.yml'