| 
					
				 | 
			
			
				@@ -0,0 +1,129 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Install podman 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.package: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: podman 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: present 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Create container group 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.group: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ container_group }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    gid: "{{ container_gid }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Create container user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.user: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ container_user }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    uid: "{{ container_uid }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    group: "{{ container_group }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Generate list of persistent container directories 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.set_fact: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    persistent_container_dirs: "{{ containers | map(attribute='volumes') | flatten | map('regex_replace', ':.*' ) | list }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Create persistent container directories 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.file: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    path: "{{ item }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    owner: "{{ container_user | default('root') }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    group: "{{ container_group | default('root') }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    mode: '0770' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with_items: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - "{{ persistent_container_dirs }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loop_control: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    label: "{{ item }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Create quadlet file for podman networks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  containers.podman.podman_network: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: quadlet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    quadlet_options: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      - | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [Install] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        WantedBy=default.target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  notify: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - Daemon Reload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with_items: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - "{{ container_networks }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  when: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - container_networks is defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loop_control: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    label: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Flush Handlers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  meta: flush_handlers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Start Podman Networks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.systemd_service: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ item.name }}-network" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: started 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with_items: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - "{{ container_networks }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  when: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - container_networks is defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loop_control: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    label: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Create quadlet .pod files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  containers.podman.podman_pod: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: quadlet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ports: "{{ item.ports | default(omit) }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with_items: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - "{{ containers }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  when: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - containers is defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loop_control: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    label: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  notify: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - Daemon Reload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Create quadlet .container files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  containers.podman.podman_container: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: quadlet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    image: "{{ item.image }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    env: "{{ item.environment | default(omit) }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ports: "{{ item.ports | default(omit) }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cap_add: "{{ item.cap_add | default(omit) }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    volumes: "{{ item.volumes | default(omit) }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    network: "{{ item.networks | default(omit) }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    quadlet_options: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      - "AutoUpdate=registry" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      - "Pull=newer" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      - | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [Install] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        WantedBy=default.target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with_items: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - "{{ containers }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  when: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - containers is defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loop_control: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    label: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  notify: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - Daemon Reload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Flush handlers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  meta: flush_handlers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Containers are automatically enabled via WantedBy=default.target entries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- name: Start Container Services 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ansible.builtin.systemd_service: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    state: started 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with_items: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - "{{ containers }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  when: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - containers is defined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loop_control: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    label: "{{ item.name }}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 |