2014-02-19 23:05:35 +00:00
- name : install the test daemon script
copy : src=ansible_test_service dest=/usr/sbin/ansible_test_service mode=755
register : install_result
- name : assert that the daemon script was installed
assert :
that :
- "install_result.dest == '/usr/sbin/ansible_test_service'"
- "install_result.state == 'file'"
- "install_result.mode == '0755'"
2016-07-29 15:35:03 +00:00
# determine init system is in use
- name : detect sysv init system
set_fact : service_type=sysv
2015-10-19 17:21:34 +00:00
when : ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux'] and (ansible_distribution_version|version_compare('6', '>=') and ansible_distribution_version|version_compare('7', '<'))
2016-07-29 15:35:03 +00:00
- name : detect systemd init system
set_fact : service_type=systemd
2016-05-31 21:47:36 +00:00
when : (ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux'] and (ansible_distribution_version|version_compare('7', '>=') and ansible_distribution_version|version_compare('8', '<'))) or ansible_distribution == 'Fedora' or (ansible_distribution == 'Ubuntu' and ansible_distribution_version|version_compare('15.04', '>=')) or (ansible_distribution == 'Debian' and ansible_distribution_version|version_compare('8', '>=')) or ansible_os_family == 'Suse'
2016-07-29 15:35:03 +00:00
- name : detect upstart init system
set_fact : service_type=upstart
2015-10-21 13:15:27 +00:00
when : ansible_distribution == 'Ubuntu' and ansible_distribution_version|version_compare('15.04', '<')
2014-02-19 23:05:35 +00:00
2016-07-29 15:35:03 +00:00
# setup test service script
- include : 'sysv_setup.yml'
when : service_type == "sysv"
- include : 'systemd_setup.yml'
when : service_type == "systemd"
- include : 'upstart_setup.yml'
when : service_type == "upstart"
- name : disable the ansible test service
service : name=ansible_test enabled=no
- name : (check mode run) enable the ansible test service
service : name=ansible_test enabled=yes
register : enable_in_check_mode_result
check_mode : yes
- name : assert that changes reported for check mode run
assert :
that :
- "enable_in_check_mode_result.changed == true"
2014-02-19 23:05:35 +00:00
- name : enable the ansible test service
service : name=ansible_test enabled=yes
register : enable_result
2016-07-29 15:35:03 +00:00
- name : assert that the service was enabled and changes reported
2014-02-19 23:05:35 +00:00
assert :
that :
- "enable_result.enabled == true"
2016-07-29 15:35:03 +00:00
- "enable_result.changed == true"
2014-02-19 23:05:35 +00:00
- name : start the ansible test service
service : name=ansible_test state=started
register : start_result
- name : assert that the service was started
assert :
that :
- "start_result.state == 'started'"
- name : find the service with a pattern
service : name=ansible_test pattern="ansible_test_ser*" state=started
register : start2_result
2016-07-29 15:35:03 +00:00
# don't enable this check yet on systems with systemd because of https://github.com/ansible/ansible/issues/16694
2016-05-31 20:43:06 +00:00
when : service_type != "systemd"
2014-02-19 23:05:35 +00:00
- name : assert that the service was started via the pattern
assert :
that :
- "start2_result.name == 'ansible_test'"
- "start2_result.state == 'started'"
2016-05-31 20:43:06 +00:00
when : service_type != "systemd"
2014-02-19 23:05:35 +00:00
- name : restart the ansible test service
service : name=ansible_test state=restarted
register : restart_result
- name : assert that the service was restarted
assert :
that :
- "restart_result.state == 'started'"
- name : restart the ansible test service with a sleep
service : name=ansible_test state=restarted sleep=2
register : restart_sleep_result
2016-07-29 15:35:03 +00:00
# don't enable this check yet on systems with systemd because of https://github.com/ansible/ansible/issues/16694
2016-05-31 20:43:06 +00:00
when : service_type != "systemd"
2014-02-19 23:05:35 +00:00
- name : assert that the service was restarted with a sleep
assert :
that :
- "restart_sleep_result.state == 'started'"
2016-05-31 20:43:06 +00:00
when : service_type != "systemd"
2014-02-19 23:05:35 +00:00
- name : reload the ansible test service
service : name=ansible_test state=reloaded
register : reload_result
2016-07-29 15:35:03 +00:00
# don't do this on systems with systemd because it triggers error:
# Unable to reload service ansible_test: ansible_test.service is not active, cannot reload.
2016-05-31 20:43:06 +00:00
when : service_type != "systemd"
2014-02-19 23:05:35 +00:00
- name : assert that the service was reloaded
assert :
that :
- "reload_result.state == 'started'"
2016-05-31 20:43:06 +00:00
when : service_type != "systemd"
2014-02-19 23:05:35 +00:00
- name : stop the ansible test service
service : name=ansible_test state=stopped
register : stop_result
- name : assert that the service was stopped
assert :
that :
- "stop_result.state == 'stopped'"
- name : disable the ansible test service
service : name=ansible_test enabled=no
register : disable_result
- name : assert that the service was disabled
assert :
that :
- "disable_result.enabled == false"
2014-09-18 19:39:54 +00:00
- name : try to enable a broken service
2014-09-18 20:18:31 +00:00
service : name=ansible_broken_test enabled=yes
2014-09-18 19:39:54 +00:00
register : broken_enable_result
ignore_errors : True
- name : assert that the broken test failed
assert :
that :
2015-12-17 17:25:29 +00:00
- "broken_enable_result|failed"
2014-09-18 19:39:54 +00:00
2014-02-19 23:05:35 +00:00
- name : remove the test daemon script
file : path=/usr/sbin/ansible_test_service state=absent
register : remove_result
- name : assert that the test daemon script was removed
assert :
that :
- "remove_result.path == '/usr/sbin/ansible_test_service'"
- "remove_result.state == 'absent'"
2016-07-29 15:35:03 +00:00
# cleaning up changes made by this playbook
2014-02-19 23:05:35 +00:00
- include : 'sysv_cleanup.yml'
2016-07-29 15:35:03 +00:00
when : service_type == "sysv"
2014-02-19 23:05:35 +00:00
- include : 'systemd_cleanup.yml'
2016-07-29 15:35:03 +00:00
when : service_type == "systemd"
2014-02-19 23:05:35 +00:00
- include : 'upstart_cleanup.yml'
2016-07-29 15:35:03 +00:00
when : service_type == "upstart"