diff --git a/hosts.yaml b/hosts.yaml new file mode 100644 index 0000000..bdcbf24 --- /dev/null +++ b/hosts.yaml @@ -0,0 +1,46 @@ +ungrouped: + hosts: + uisp: + ansible_user: root + unifi: + ansible_user: root + vmhost: + ansible_user: root + mail: + ansible_user: root + bevitized: + ansible_user: root + nextcloud: + ansible_user: root + wp: + ansible_user: root + danpc: + ansible_user: root + hpvm: + ansible_user: root + rbackup: + ansible_user: root +minecraft: + hosts: + mcserver: + ansible_user: root +docker: + hosts: + grafana: + ansible_user: root + authentik: + ansible_user: root + newdocker: + ansible_user: root + cloudflared: + ansible_user: root + adguard: + ansible_user: root + plex: + ansible_user: root + paperless: + ansible_user: root + immich: + ansible_user: root + npm: + ansible_user: root diff --git a/update-all.yaml b/update-all.yaml index 990817e..7365525 100644 --- a/update-all.yaml +++ b/update-all.yaml @@ -1,48 +1,49 @@ -- hosts: all - # serial: 5 +- name: gather service facts + service_facts: - tasks: +- name: check for docker + hosts: docker + set_fact: + docker_running: "'docker.service' in ansible_facts.services and ansible_facts.services['docker.service']['state']=='running'" - - name: gather service facts - service_facts: +- name: check for running containers + hosts: docker + ansible.builtin.shell: docker ps | grep -v CONTAINER\ ID + register: running_docker + ignore_errors: true + when: docker_running - - name: check for docker - set_fact: - docker_running: "'docker.service' in ansible_facts.services and ansible_facts.services['docker.service']['state']=='running'" +- name: verify that /docker exists + hosts: docker + stat: + path: /docker + register: my_docker + when: running_docker and docker_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: update system + ansible.builtin.apt: + update_cache: yes + autoclean: yes + autoremove: yes + upgrade: yes - - name: verify that /docker exists - stat: - path: /docker - register: my_docker - when: running_docker and docker_running +- name: pull docker updates + hosts: docker + 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: update system - ansible.builtin.apt: - update_cache: yes - autoclean: yes - autoremove: yes - upgrade: yes +- name: install docker updates + hosts: docker + 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: 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 +- name: prune system + hosts: docker + command: docker system prune -a -f + become: true + become_user: root + when: running_docker.stdout and my_docker.stat.exists and docker_running