r/nut{,-monitor}: Enable nut.target

Recent versions of NUT have a *nut.target* unit that collects all of the
NUT-related services.  Enabling any of the services individually does
effectively nothing, as it only adds the service as a `Wants` dependency
for *nut.target*, and that unit already has dependencies for all of
them. Thus, in order for the service to start at boot, *nut.target* has
to be enabled instead.

In situations where only *nut-monitor* should be enabled, enabling
*nut.target* is inappropriate, since that enables *nut-driver* and
*nut-server* as well. It's not clear why upstream made this change (it
was part of a [HUGE pull request][0]), but restoring the desired
behavior is easy enough by clearing the dependencies from *nut.target*.
Services that we want to start automatically can still be enabled
individually, and will start as long as *nut.target* is enabled.

[0]: https://github.com/networkupstools/nut/pull/330
frigate-exporter
Dustin 2024-01-22 09:03:15 -06:00
parent 764177daf3
commit 54727e148f
4 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,3 @@
[Unit]
Wants=
Requires=

View File

@ -0,0 +1,26 @@
- name: ensure nut.target configuration drop-in directory exists
file:
path: /etc/systemd/system/nut.target.d
owner: root
group: root
mode: u=rwx,go=rx
state: directory
tags:
- systemd
- name: ensure nut.target dependencies are reset
copy:
src: nut-reset-deps.conf
dest: /etc/systemd/system/nut.target.d/reset-deps.conf
owner: root
group: root
mode: u=rw,go=r
tags:
- systemd
- name: ensure nut.target is enabled
systemd:
name: nut.target
enabled: true
tags:
- service

View File

@ -33,3 +33,7 @@
enabled: true
tags:
- service
- name: apply nut-common role
include_role:
name: nut-common

View File

@ -60,3 +60,7 @@
permanent: true
tags:
- firewalld
- name: apply nut-common role
include_role:
name: nut-common