diff --git a/roles/podman/handlers/main.yml b/roles/podman/handlers/main.yml new file mode 100644 index 0000000..fb054a0 --- /dev/null +++ b/roles/podman/handlers/main.yml @@ -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 \ No newline at end of file diff --git a/roles/podman/tasks/main.yml b/roles/podman/tasks/main.yml index 70b0910..7aa9631 100644 --- a/roles/podman/tasks/main.yml +++ b/roles/podman/tasks/main.yml @@ -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" \ No newline at end of file + # 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 \ No newline at end of file