From b5fa9a5d673e66a51a484ceffeb454dd0717c0f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gardais=20J=C3=A9r=C3=A9my?= Date: Fri, 2 Mar 2018 14:21:59 +0100 Subject: [PATCH] Restart `xymon` service if configuration change --- CHANGELOG.md | 1 + README.md | 2 ++ defaults/main.yml | 7 +++++++ handlers/main.yml | 10 ++++++++++ tasks/main.yml | 6 ++++-- 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 handlers/main.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d5ab4b..f428827 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,4 +4,5 @@ ### Features * Install `xymon` packages for Debian based distros. * Manage `xymon` server configuration (/etc). +* Ensure to restart `xymon` server service if configuration changed. * Ensure `xymon` server service is enabled and started. diff --git a/README.md b/README.md index ec0e90d..84363da 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Manage Xymon server installation and configuration. * **xymon_server__deploy_state** : The desired state this role should achieve [default : `present`]. * **ymon_server__etc_src** : Directory used as source to templating /etc configuration content [default : `etc/xymon`]. * **xymon_server__service_manage** : If the Xymon server service should be managed [default : `True`]. +* **xymon_server__service_name** : The service name to manage [default : `xymon`]. ## Example Playbook @@ -35,6 +36,7 @@ This role will : * Install needed packages to provide `xymon` server. * Manage `xymon` server configuration (/etc). * Ensure `xymon` server service is enabled and started. +* Ensure to restart `xymon` server service if configuration changed. ## Development diff --git a/defaults/main.yml b/defaults/main.yml index bd6e3e9..f312699 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -27,6 +27,13 @@ xymon_server__base_packages: # xymon_server__deploy_state: 'present' + # ]]] +# .. envvar:: xymon_server__service_name [[[ +# +# The service name to manage. +# +xymon_server__service_name: 'xymon' + # ]]] # .. envvar:: xymon_server__service_manage [[[ # diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..e0990c8 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,10 @@ +--- +# handlers file for xymon_server +- name: restart xymon server service + service: + name: '{{ xymon_server__service_name }}' + state: '{{ "restarted" if (xymon_server__deploy_state == "present" and + (xymon_server__service_manage | d(True) | bool)) + else "stopped" }}' + enabled: '{{ xymon_server__service_manage | d(True) | bool }}' + diff --git a/tasks/main.yml b/tasks/main.yml index 1e4dec5..d75f5c6 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -21,6 +21,7 @@ state: directory with_filetree: '{{ xymon_server__etc_src }}' when: item.state == 'directory' + notify: ['restart xymon server service'] - name: Ensure /etc files are populated from templates template: @@ -28,12 +29,13 @@ dest: "/etc/xymon/{{ item.path | replace('.j2','') }}" with_filetree: '{{ xymon_server__etc_src }}' when: item.state == 'file' + notify: ['restart xymon server service'] -# Manage services [[[1 +# Manage service [[[1 - name: Manage Xymon server service service: - name: 'xymon' + name: '{{ xymon_server__service_name }}' state: '{{ "started" if (xymon_server__deploy_state == "present" and (xymon_server__service_manage | d(True) | bool)) else "stopped" }}'