Add user systemd config to pi-hole container
This commit is contained in:
parent
462e202737
commit
5d32ed57b4
3 changed files with 60 additions and 28 deletions
|
|
@ -41,7 +41,7 @@
|
||||||
volumes:
|
volumes:
|
||||||
- "/home/{{ actual_username }}/actual_data:/data"
|
- "/home/{{ actual_username }}/actual_data:/data"
|
||||||
state: stopped
|
state: stopped
|
||||||
recreate: true
|
# For more information on the systemd startup service, see: https://linuxhandbook.com/autostart-podman-containers/
|
||||||
generate_systemd:
|
generate_systemd:
|
||||||
path: "/home/{{ actual_username }}/.config/systemd/user/"
|
path: "/home/{{ actual_username }}/.config/systemd/user/"
|
||||||
restart_policy: always
|
restart_policy: always
|
||||||
|
|
|
||||||
|
|
@ -9,3 +9,9 @@
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: ufw.service
|
name: ufw.service
|
||||||
state: restarted
|
state: restarted
|
||||||
|
- name: Reload systemd (daemon-reload)
|
||||||
|
become: true
|
||||||
|
become_user: "{{ pi_hole_username }}"
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
daemon_reload: true
|
||||||
|
scope: user
|
||||||
|
|
|
||||||
|
|
@ -34,17 +34,30 @@
|
||||||
# changes the user of the folder to a UID only known within the container. This command basically doesn't need to
|
# changes the user of the folder to a UID only known within the container. This command basically doesn't need to
|
||||||
# change anything at this point so we'll ignore the error for now.
|
# change anything at this point so we'll ignore the error for now.
|
||||||
- "'set_mode_if_different' not in command_result.module_stdout"
|
- "'set_mode_if_different' not in command_result.module_stdout"
|
||||||
- name: Start the Pi-hole container
|
- name: Start the podman-restart.service
|
||||||
become: true
|
become: true
|
||||||
become_user: "{{ pi_hole_username }}"
|
become_user: "{{ pi_hole_username }}"
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: podman-restart.service
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
scope: user
|
||||||
|
- name: Gather facts on the pi-hole container
|
||||||
|
become: true
|
||||||
|
become_user: "{{ pi_hole_username }}"
|
||||||
|
containers.podman.podman_container_info:
|
||||||
|
name: pi-hole
|
||||||
|
register: pi_hole_container_info
|
||||||
|
- name: Start the pi-hole container with correct systemd linking
|
||||||
|
when: "'no such container' in pi_hole_container_info.stderr"
|
||||||
|
become: true
|
||||||
|
become_user: "{{ pi_hole_username }}"
|
||||||
|
block:
|
||||||
|
- name: Start the Pi hole container
|
||||||
containers.podman.podman_container:
|
containers.podman.podman_container:
|
||||||
name: pi-hole
|
name: pi-hole
|
||||||
image: docker.io/pihole/pihole:2024.03.2
|
image: docker.io/pihole/pihole:2024.03.2
|
||||||
# TODO: Enable containers on boot
|
restart_policy: always
|
||||||
# I expected podman containers to restart on boot with this policy but apparently the documentation specifically
|
|
||||||
# states that they won't do this. There seems to be an involved workaround to get this to work whilst keeping the
|
|
||||||
# containers "rootless". See this guide: https://linuxhandbook.com/autostart-podman-containers/
|
|
||||||
restart_policy: on-failure
|
|
||||||
publish:
|
publish:
|
||||||
# It seems we can't use authbind in combination with Podman, see: https://github.com/containers/podman/issues/13426.
|
# It seems we can't use authbind in combination with Podman, see: https://github.com/containers/podman/issues/13426.
|
||||||
# Instead we'll map to a higher port number and install and use the ufw firewall to forward packets to the local port.
|
# Instead we'll map to a higher port number and install and use the ufw firewall to forward packets to the local port.
|
||||||
|
|
@ -63,7 +76,20 @@
|
||||||
volumes:
|
volumes:
|
||||||
- "/home/{{ pi_hole_username }}/etc-pihole:/etc/pihole"
|
- "/home/{{ pi_hole_username }}/etc-pihole:/etc/pihole"
|
||||||
- "/home/{{ pi_hole_username }}/etc-dnsmasq.d:/etc/dnsmasq.d"
|
- "/home/{{ pi_hole_username }}/etc-dnsmasq.d:/etc/dnsmasq.d"
|
||||||
|
state: stopped
|
||||||
|
# For more information on the systemd startup service, see: https://linuxhandbook.com/autostart-podman-containers/
|
||||||
|
generate_systemd:
|
||||||
|
path: "/home/{{ pi_hole_username }}/.config/systemd/user/"
|
||||||
|
restart_policy: always
|
||||||
|
notify: Reload systemd (daemon-reload)
|
||||||
|
- name: Flush handlers
|
||||||
|
ansible.builtin.meta: flush_handlers
|
||||||
|
- name: Enable the newly created systemd service for user
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: container-pi-hole.service
|
||||||
state: started
|
state: started
|
||||||
|
enabled: true
|
||||||
|
scope: user
|
||||||
- name: Install certificate for pi-hole.kleinendorst.info
|
- name: Install certificate for pi-hole.kleinendorst.info
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue