You've already forked role_podman
59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
---
|
|
# tasks file for podman
|
|
|
|
- name: List current quadlets
|
|
ansible.builtin.find:
|
|
paths: "{{ podman_user_homedir }}/.config/containers/systemd"
|
|
become: true
|
|
register: current_quadlets
|
|
|
|
- name: Extract list of undefined quadlets
|
|
ansible.builtin.set_fact:
|
|
podman_quadlets_undefined: >-
|
|
{{
|
|
current_quadlets.files |
|
|
map(attribute='path') |
|
|
map('ansible.builtin.basename') |
|
|
ansible.builtin.difference(podman_qualets_filenames)
|
|
}}
|
|
vars:
|
|
podman_qualets_filenames: "{{ podman_quadlets | map('ansible.builtin.basename') }}"
|
|
|
|
- name: Stop unwanted quadlets
|
|
ansible.builtin.systemd_service:
|
|
name: "{{ unit }}"
|
|
state: stopped
|
|
daemon_reload: true
|
|
scope: user
|
|
become: true
|
|
become_user: "{{ podman_user }}"
|
|
loop: "{{ podman_quadlets_undefined }}"
|
|
loop_control:
|
|
label: "{{ unit }}"
|
|
vars:
|
|
unit: >-
|
|
{{
|
|
item | ansible.builtin.basename |
|
|
ansible.builtin.regex_replace('\.container$', '.service') |
|
|
ansible.builtin.regex_replace('\.network$', '-network.service')
|
|
}}
|
|
|
|
- name: Remove undefined quadlets
|
|
ansible.builtin.file:
|
|
path: "{{ podman_user_homedir }}/.config/containers/systemd/{{ item }}"
|
|
state: absent
|
|
become: true
|
|
loop: "{{ podman_quadlets_undefined }}"
|
|
|
|
- name: Deploy quadlets
|
|
ansible.builtin.template:
|
|
src: "{{ item }}.j2"
|
|
dest: "{{ podman_user_homedir }}/.config/containers/systemd/{{ item | ansible.builtin.basename }}"
|
|
owner: "{{ podman_user }}"
|
|
group: "{{ podman_user }}"
|
|
mode: u=rw,g=r,o=
|
|
become: true
|
|
loop: "{{ podman_quadlets }}"
|
|
register: deployed_quadlets
|
|
notify: Start or restart quadlets
|