diff --git a/playbooks/update-all-containers.yaml b/playbooks/update-all-containers.yaml new file mode 100644 index 0000000..6a63cd0 --- /dev/null +++ b/playbooks/update-all-containers.yaml @@ -0,0 +1,38 @@ +--- +- name: Alle Docker-Container auf Host aktualisieren + hosts: docker_hosts + become: true + vars: + docker_host: unix://var/run/docker.sock + + collections: + - community.docker + + tasks: + - name: Alle Container (inkl. gestoppte) auflisten + community.docker.docker_host_info: + containers: true + register: docker_info + + - name: Images-Liste aus Containern extrahieren + set_fact: + container_images: >- + {{ docker_info.containers + | map(attribute='Image') + | list + | unique }} + + - name: Neueste Images ziehen + community.docker.docker_image: + name: "{{ item }}" + source: pull + loop: "{{ container_images }}" + register: pulled_images + + - name: Container neu erstellen, wenn Image aktualisiert wurde + community.docker.docker_container: + name: "{{ item.Names[0] | regex_replace('^/', '') }}" + image: "{{ item.Image }}" + state: started + recreate: true + loop: "{{ docker_info.containers }}" \ No newline at end of file