ansible/update-all.yaml

49 lines
1.4 KiB
YAML

- hosts: all
# serial: 5
tasks:
- name: gather service facts
service_facts:
- name: check for docker
set_fact:
docker_running: "'docker.service' in ansible_facts.services and ansible_facts.services['docker.service']['state']=='running'"
- name: check for running containers
ansible.builtin.shell: docker ps | grep -v CONTAINER\ ID
register: running_docker
ignore_errors: true
when: docker_running
- name: verify that /docker exists
stat:
path: /docker
register: my_docker
when: running_docker and docker_running
- name: update system
ansible.builtin.apt:
update_cache: yes
autoclean: yes
autoremove: yes
upgrade: yes
- name: pull docker updates
command: find /docker -maxdepth 1 -type d -exec /bin/sh 'cd {}; [ -f .env ] && echo {} && docker compose pull' \;
become: true
become_user: root
when: running_docker and my_docker.stat.exists and docker_running
- name: install docker updates
command: find /docker -maxdepth 1 -type d -exec /bin/sh 'cd {}; [ -f .env ] && echo {} && docker compose up -d' \;
become: true
become_user: root
when: running_docker.stdout and my_docker.stat.exists and docker_running
- name: prune system
command: docker system prune -a -f
become: true
become_user: root
when: running_docker.stdout and my_docker.stat.exists and docker_running