From cd61710538e827ea96917508e40d21f7afeff521 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Thu, 13 Mar 2025 18:53:57 +0100 Subject: [PATCH] Use systemd socket activation for Foreman --- src/roles/foreman/defaults/main.yaml | 1 + src/roles/foreman/tasks/main.yaml | 8 ++++++++ src/roles/foreman/templates/foreman.socket.j2 | 8 ++++++++ 3 files changed, 17 insertions(+) create mode 100644 src/roles/foreman/templates/foreman.socket.j2 diff --git a/src/roles/foreman/defaults/main.yaml b/src/roles/foreman/defaults/main.yaml index 2d4cc7364..d34d2a03e 100644 --- a/src/roles/foreman/defaults/main.yaml +++ b/src/roles/foreman/defaults/main.yaml @@ -12,6 +12,7 @@ foreman_database_ssl_ca: # noqa: no-empty-defaults foreman_database_ssl_ca_path: /etc/foreman/db-ca.crt foreman_name: "{{ ansible_facts['fqdn'] }}" +foreman_listen_stream: 127.0.0.1:3000 foreman_url: "http://{{ ansible_facts['fqdn'] }}:3000" # Puma threads calculation: diff --git a/src/roles/foreman/tasks/main.yaml b/src/roles/foreman/tasks/main.yaml index 3ad72dd28..2a18309e4 100644 --- a/src/roles/foreman/tasks/main.yaml +++ b/src/roles/foreman/tasks/main.yaml @@ -100,6 +100,12 @@ - Restart foreman - Restart dynflow-sidekiq@ +- name: Deploy Foreman socket + ansible.builtin.template: + src: foreman.socket.j2 + dest: /etc/systemd/system/foreman.socket + mode: '0644' + - name: Deploy Foreman Container containers.podman.podman_container: name: "foreman" @@ -130,6 +136,8 @@ FOREMAN_ENABLED_PLUGINS: "{{ foreman_plugins | join(' ') }}" quadlet_options: - | + [Unit] + Requires=foreman.socket [Install] WantedBy=default.target foreman.target [Unit] diff --git a/src/roles/foreman/templates/foreman.socket.j2 b/src/roles/foreman/templates/foreman.socket.j2 new file mode 100644 index 000000000..b40cc96f4 --- /dev/null +++ b/src/roles/foreman/templates/foreman.socket.j2 @@ -0,0 +1,8 @@ +[Unit] +Description=Foreman socket + +[Socket] +ListenStream={{ foreman_listen_stream }} + +[Install] +WantedBy=sockets.target