Restart sockets when they are changed
At the moment it's possible only to forcefully restart sockets under each run, which is not idempotent and may cause interruptions for service. To avoid that we add a way to restart socket just on config change with same logic applied as for service. Change-Id: Ifb6fd9461d7b6a65191b918c0863406cf4de6725
This commit is contained in:
parent
ed30679416
commit
17f833f27a
@ -13,6 +13,18 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Restart changed sockets
|
||||
include_tasks: handlers/socket_restart.yml
|
||||
listen: systemd socket changed
|
||||
when:
|
||||
- 'socket_results is changed'
|
||||
loop: "{{ systemd_socket.results }}"
|
||||
loop_control:
|
||||
loop_var: socket_results
|
||||
tags:
|
||||
- systemd-service
|
||||
|
||||
|
||||
- name: Restart changed services
|
||||
include_tasks: handlers/systemd_restart.yml
|
||||
listen: systemd service changed
|
||||
|
27
handlers/socket_restart.yml
Normal file
27
handlers/socket_restart.yml
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
# Copyright 2023, Cleura AB.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: "Restart socket"
|
||||
systemd:
|
||||
name: "{{ socket.socket_name | replace(' ', '_') }}.socket"
|
||||
state: restarted
|
||||
when:
|
||||
- "'socket_name' in socket"
|
||||
- socket.restart_changed | default(systemd_service_restart_changed) | bool
|
||||
- "'state' not in socket"
|
||||
- socket.enabled | default(systemd_service_enabled) | bool
|
||||
loop: "{{ socket_results.item }}"
|
||||
loop_control:
|
||||
loop_var: socket
|
@ -131,6 +131,7 @@
|
||||
group: "root"
|
||||
loop: "{{ systemd_services | subelements('sockets', skip_missing=True) }}"
|
||||
notify:
|
||||
- systemd socket changed
|
||||
- systemd service changed
|
||||
register: systemd_socket
|
||||
tags:
|
||||
|
Loading…
Reference in New Issue
Block a user