From ded4cca89177895096dc38a7a4c4d83f2f0e444a Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Mon, 10 Apr 2023 16:22:19 +0200 Subject: [PATCH] Ensure service is restarted on unit file changes At the moment we don't restart services if systemd unit file is changed. We knowingly prevent systemd_service role handlers to execute by providing `state: started` as otherwise service will be restarted twice. With that now we ensure that role handlers will also listen for systemd unit changes. Change-Id: I3f17e680d1bf9e6e34de6b611db2a484eabbded9 --- handlers/main.yml | 1 + tasks/main.yml | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/handlers/main.yml b/handlers/main.yml index 1408b4f..4f518d4 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -22,3 +22,4 @@ when: inventory_hostname in groups[item.value.group] listen: - "venv changed" + - "systemd service changed" diff --git a/tasks/main.yml b/tasks/main.yml index 7a5d3ec..c7cce2e 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -116,7 +116,12 @@ {% set services = [] %} {% for service in masakari_services.values() %} {% if service.group in group_names %} - {% set _ = service.update({'enabled': 'yes', 'state': 'started'}) %} + {% set _ = service.update( + { + 'enabled': service['enabled'] | default(True), + 'state': service['state'] | default('started') + } + ) %} {% set _ = service.pop('group') %} {% set _ = services.append(service) %} {% endif %}