1- name: install the test daemon script 2 copy: 3 src: ansible_test_service.py 4 dest: /usr/sbin/ansible_test_service 5 mode: '755' 6 7- name: rewrite shebang in the test daemon script 8 lineinfile: 9 path: /usr/sbin/ansible_test_service 10 line: "#!{{ ansible_python_interpreter | realpath }}" 11 insertbefore: BOF 12 firstmatch: yes 13 14- block: 15 # determine init system is in use 16 - name: detect sysv init system 17 set_fact: 18 service_type: sysv 19 when: 20 - ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux'] 21 - ansible_distribution_version is version('6', '>=') 22 - ansible_distribution_version is version('7', '<') 23 - name: detect systemd init system 24 set_fact: 25 service_type: systemd 26 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' 27 - name: detect upstart init system 28 set_fact: 29 service_type: upstart 30 when: 31 - ansible_distribution == 'Ubuntu' 32 - ansible_distribution_version is version('15.04', '<') 33 34 - name: display value of ansible_service_mgr 35 debug: 36 msg: 'ansible_service_mgr: {{ ansible_service_mgr }}' 37 38 - name: setup test service script 39 include_tasks: '{{ service_type }}_setup.yml' 40 41 - name: execute tests 42 import_tasks: tests.yml 43 44 always: 45 - name: disable and stop ansible test service 46 service: 47 name: ansible_test 48 state: stopped 49 enabled: false 50 51 # cleaning up changes made by this playbook 52 - include_tasks: '{{ service_type }}_cleanup.yml' 53