Add systemd_socket role
This commit is contained in:
1
roles/systemd_socket/README.md
Normal file
1
roles/systemd_socket/README.md
Normal file
@@ -0,0 +1 @@
|
||||
Adds a systemd socket for a service
|
||||
2
roles/systemd_socket/defaults/main.yaml
Normal file
2
roles/systemd_socket/defaults/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
systemd_socket_requires: []
|
||||
6
roles/systemd_socket/handlers/main.yaml
Normal file
6
roles/systemd_socket/handlers/main.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Restart socket {{ systemd_socket_name }}
|
||||
ansible.builtin.set_fact:
|
||||
systemd_restart_units: "{{ systemd_restart_units + [systemd_socket_name ~ '.socket'] }}" # noqa: var-naming[no-role-prefix]
|
||||
changed_when: true
|
||||
notify: Apply systemd unit restarts
|
||||
16
roles/systemd_socket/meta/argument_specs.yaml
Normal file
16
roles/systemd_socket/meta/argument_specs.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
argument_specs:
|
||||
main:
|
||||
description:
|
||||
- Adds a systemd socket for a service
|
||||
options:
|
||||
systemd_socket_name:
|
||||
description: Name of the socket. The socket will be created at /run/<systemd_socket_name>.sock
|
||||
type: str
|
||||
required: true
|
||||
systemd_socket_requires:
|
||||
description: List of units this socket depends on.
|
||||
type: list
|
||||
required: false
|
||||
default: []
|
||||
elements: str
|
||||
3
roles/systemd_socket/meta/main.yaml
Normal file
3
roles/systemd_socket/meta/main.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
dependencies:
|
||||
- role: systemd
|
||||
9
roles/systemd_socket/tasks/main.yaml
Normal file
9
roles/systemd_socket/tasks/main.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Socket {{ systemd_socket_name }}
|
||||
ansible.builtin.template:
|
||||
src: socket.j2
|
||||
dest: /etc/systemd/system/{{ systemd_socket_name }}.socket
|
||||
mode: "0644"
|
||||
notify:
|
||||
- Reload systemd daemon
|
||||
- Restart socket {{ systemd_socket_name }}
|
||||
9
roles/systemd_socket/templates/socket.j2
Normal file
9
roles/systemd_socket/templates/socket.j2
Normal file
@@ -0,0 +1,9 @@
|
||||
# {{ ansible_managed }}
|
||||
[Unit]
|
||||
Description={{ systemd_socket_name }} socket
|
||||
{% for item in systemd_socket_requires %}
|
||||
Requires={{ item }}
|
||||
{% endfor %}
|
||||
|
||||
[Socket]
|
||||
ListenStream=/run/{{ systemd_socket_name }}.sock
|
||||
Reference in New Issue
Block a user