From 42e0ee31821e0a9dc2b5d21c324cca00d6a5f7f6 Mon Sep 17 00:00:00 2001 From: sonny Date: Sat, 25 Jan 2025 12:52:13 +0100 Subject: [PATCH] Disable user lingering & use system systemd services --- handlers.yml | 5 +- tasks/mpd.yml | 49 ++++++++++++++-- tasks/network.yml | 4 +- tasks/setup.yml | 4 ++ tasks/syncthing.yml | 6 ++ tasks/transmission.yml | 56 ++++++++++++++++--- .../interface_restart.service.j2 | 0 .../{ => systemd}/interface_restart.timer.j2 | 0 templates/systemd/mpd.j2 | 4 ++ templates/systemd/transmission.j2 | 4 ++ templates/transmission.j2 | 4 +- 11 files changed, 117 insertions(+), 19 deletions(-) rename templates/{ => systemd}/interface_restart.service.j2 (100%) rename templates/{ => systemd}/interface_restart.timer.j2 (100%) create mode 100644 templates/systemd/mpd.j2 create mode 100644 templates/systemd/transmission.j2 diff --git a/handlers.yml b/handlers.yml index e8fe8b7..3a9cc25 100644 --- a/handlers.yml +++ b/handlers.yml @@ -22,17 +22,16 @@ - name: restart syncthing service systemd: - name: syncthing + name: syncthing@sonny.service state: restarted enabled: true - scope: user - name: restart mpd service + become: true systemd: name: mpd state: restarted enabled: true - scope: user - name: restart certbot become: true diff --git a/tasks/mpd.yml b/tasks/mpd.yml index 709ecf2..348eac3 100644 --- a/tasks/mpd.yml +++ b/tasks/mpd.yml @@ -1,8 +1,49 @@ -- name: copy mpd template +- name: create mpd directories + become: true + file: + path: '{{ item.path }}' + mode: '{{ item.mode }}' + owner: '{{ item.owner }}' + group: '{{ item.group }}' + state: directory + loop: + - { + path: '{{ ansible_env.HOME }}/.config/mpd', + mode: 755, + owner: 'sonny', + group: 'sonny', + } + - { + path: '/etc/systemd/system/mpd.service.d', + mode: 755, + owner: 'root', + group: 'root', + } + notify: restart mpd service + +- name: copy mpd templates + become: true template: - src: 'templates/mpd.j2' - dest: '{{ ansible_env.HOME }}/.config/mpd/mpd.conf' - mode: '0640' + src: '{{ item.src }}' + dest: '{{ item.dest }}' + mode: '{{ item.mode }}' + owner: '{{ item.owner }}' + group: '{{ item.group }}' + loop: + - { + src: 'templates/systemd/mpd.j2', + dest: '/etc/systemd/system/mpd.service.d/override.conf', + mode: 755, + owner: 'root', + group: 'root', + } + - { + src: 'templates/mpd.j2', + dest: '{{ ansible_env.HOME }}/.config/mpd/mpd.conf', + mode: 0640, + owner: 'sonny', + group: 'sonny', + } notify: restart mpd service - name: created mpd files diff --git a/tasks/network.yml b/tasks/network.yml index 5065d02..1a126ac 100644 --- a/tasks/network.yml +++ b/tasks/network.yml @@ -24,11 +24,11 @@ mode: '0640' loop: - { - src: 'templates/interface_restart.timer.j2', + src: 'templates/systemd/interface_restart.timer.j2', dest: '/etc/systemd/system/interface-restart.timer', } - { - src: 'templates/interface_restart.service.j2', + src: 'templates/systemd/interface_restart.service.j2', dest: '/etc/systemd/system/interface-restart.service', } notify: restart systemd-networkd diff --git a/tasks/setup.yml b/tasks/setup.yml index 9648d24..12bfad0 100644 --- a/tasks/setup.yml +++ b/tasks/setup.yml @@ -30,3 +30,7 @@ - name: compile wezterm terminfo file become: true command: 'tic -x {{ ansible_env.HOME }}/.terminfo' + +- name: disable user lingering + become: true + command: 'loginctl disable-linger sonny' diff --git a/tasks/syncthing.yml b/tasks/syncthing.yml index 7fd7ff9..40d48e1 100644 --- a/tasks/syncthing.yml +++ b/tasks/syncthing.yml @@ -1,3 +1,9 @@ +- name: create syncthing directory + file: + path: '{{ ansible_env.HOME }}/.config/syncthing' + mode: '755' + state: directory + - name: copy syncthing template template: src: 'templates/syncthing.j2' diff --git a/tasks/transmission.yml b/tasks/transmission.yml index 89db08b..4244ded 100644 --- a/tasks/transmission.yml +++ b/tasks/transmission.yml @@ -1,20 +1,60 @@ # transmission's configuration file does not change while the service is # still running - name: stop transmission daemon + become: true systemd: - name: transmission + name: transmission-daemon state: stopped - scope: user -- name: copy transmission template +- name: create transmission directories + become: true + file: + path: '{{ item.path }}' + mode: '{{ item.mode }}' + owner: '{{ item.owner }}' + group: '{{ item.group }}' + state: directory + loop: + - { + path: '{{ ansible_env.HOME }}/.config/transmission-daemon', + mode: 755, + owner: 'sonny', + group: 'sonny', + } + - { + path: '/etc/systemd/system/transmission-daemon.service.d', + mode: 755, + owner: 'root', + group: 'root', + } + +- name: copy transmission templates + become: true template: - src: 'templates/transmission.j2' - dest: '{{ ansible_env.HOME }}/.config/transmission-daemon/settings.json' - mode: '0600' + src: '{{ item.src }}' + dest: '{{ item.dest }}' + mode: '{{ item.mode }}' + owner: '{{ item.owner }}' + group: '{{ item.group }}' + loop: + - { + src: 'templates/systemd/transmission.j2', + dest: '/etc/systemd/system/transmission-daemon.service.d/override.conf', + mode: '755', + owner: 'root', + group: 'root', + } + - { + src: 'templates/transmission.j2', + dest: '{{ ansible_env.HOME }}/.config/transmission-daemon/settings.json', + mode: '0600', + owner: 'sonny', + group: 'sonny', + } - name: start transmission daemon + become: true systemd: - name: transmission + name: transmission-daemon state: started enabled: true - scope: user diff --git a/templates/interface_restart.service.j2 b/templates/systemd/interface_restart.service.j2 similarity index 100% rename from templates/interface_restart.service.j2 rename to templates/systemd/interface_restart.service.j2 diff --git a/templates/interface_restart.timer.j2 b/templates/systemd/interface_restart.timer.j2 similarity index 100% rename from templates/interface_restart.timer.j2 rename to templates/systemd/interface_restart.timer.j2 diff --git a/templates/systemd/mpd.j2 b/templates/systemd/mpd.j2 new file mode 100644 index 0000000..bc3a5ce --- /dev/null +++ b/templates/systemd/mpd.j2 @@ -0,0 +1,4 @@ +# {{ ansible_managed }} + +[Service] +User=sonny diff --git a/templates/systemd/transmission.j2 b/templates/systemd/transmission.j2 new file mode 100644 index 0000000..bc3a5ce --- /dev/null +++ b/templates/systemd/transmission.j2 @@ -0,0 +1,4 @@ +# {{ ansible_managed }} + +[Service] +User=sonny diff --git a/templates/transmission.j2 b/templates/transmission.j2 index 29bd20f..3d9ac95 100644 --- a/templates/transmission.j2 +++ b/templates/transmission.j2 @@ -6,8 +6,8 @@ "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, - "bind-address-ipv4": "{{ lan_ip_address }}", - "bind-address-ipv6": "::", + "bind-address-ipv4": "", + "bind-address-ipv6": "", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4,