49 lines
1.4 KiB
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
|