use systemd to make portainer persistent

This commit is contained in:
2025-11-07 18:59:01 +01:00
parent 2564b458b0
commit 7dd9877e61
2 changed files with 34 additions and 3 deletions

View File

@@ -0,0 +1,8 @@
---
# handlers file for roles/podman
- name: Reload systemd and restart Portainer pod
ansible.builtin.systemd:
name: pod-portainer.service
state: restarted
daemon_reload: yes

View File

@@ -59,7 +59,30 @@
dest: "{{ podman_data_mount_point }}/compose/portainer/compose.yaml"
mode: '0644'
- name: Start Portainer container using podman-compose
- name: Generate systemd service file for the Portainer pod
ansible.builtin.command:
cmd: podman-compose up -d
chdir: "{{ podman_data_mount_point }}/compose/portainer"
# Führt 'podman-compose up' aus, um die Container zu erstellen (falls nicht vorhanden).
# Generiert dann eine systemd-Unit für den Pod, der von podman-compose erstellt wurde.
# Der Pod-Name entspricht dem Verzeichnisnamen ('portainer').
# '--new' erlaubt es systemd, die Container bei Bedarf neu zu erstellen.
cmd: podman-compose up -d && podman generate systemd --new --files --name portainer
chdir: "{{ podman_data_mount_point }}/compose/portainer"
creates: "{{ podman_data_mount_point }}/compose/portainer/pod-portainer.service"
register: generate_systemd
changed_when: generate_systemd.rc == 0 and "pod-portainer.service" in generate_systemd.stdout
- name: Copy systemd service file to system location
ansible.builtin.copy:
src: "{{ podman_data_mount_point }}/compose/portainer/pod-portainer.service"
dest: "/etc/systemd/system/pod-portainer.service"
remote_src: yes
mode: '0644'
when: generate_systemd.changed
notify: Reload systemd and restart Portainer pod
- name: Ensure Portainer pod service is enabled and started
ansible.builtin.systemd:
name: pod-portainer.service
state: started
enabled: yes
daemon_reload: yes