From a1696ff0b8ea90681b1f830de3209b00b8525f88 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Wed, 2 Apr 2025 14:58:52 +0200 Subject: [PATCH] Update dockers playbook converted into role --- README.md | 11 +++++++++ ansible.cfg | 1 + playbooks/update-docker-project.yaml | 23 ------------------ playbooks/update-dockers.yaml | 23 +++++------------- roles/update_docker/tasks/main.yaml | 7 ++++++ roles/update_docker/tasks/update_compose.yaml | 24 +++++++++++++++++++ 6 files changed, 49 insertions(+), 40 deletions(-) create mode 100644 README.md delete mode 100644 playbooks/update-docker-project.yaml create mode 100644 roles/update_docker/tasks/main.yaml create mode 100644 roles/update_docker/tasks/update_compose.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..13f49cb --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# Ansible FR + +## Ping server group +```sh +ansible -m ping server +``` + +## Update docker composes on my servers +```sh +ansible-playbook playbooks/update_dockers.yaml +``` diff --git a/ansible.cfg b/ansible.cfg index 4c18d55..ecf3bdd 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -4,3 +4,4 @@ remote_user = root forks = 8 interpreter_python = /usr/bin/python3 nocows=1 +roles_path = ./roles:./playbooks/roles diff --git a/playbooks/update-docker-project.yaml b/playbooks/update-docker-project.yaml deleted file mode 100644 index 34d260a..0000000 --- a/playbooks/update-docker-project.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -- name: Pull updated images for project at {{ project.path }} - community.docker.docker_compose_v2_pull: - project_src: "{{ project.path }}" - register: pull_result - -- name: Debug pull result for {{ project.path }} - debug: - msg: "Pull changed: {{ pull_result.changed }} for project at {{ project.path }}" - -- name: Restart project at {{ project.path }} if images updated - block: - - name: Bring project down at {{ project.path }} - community.docker.docker_compose_v2: - project_src: "{{ project.path }}" - state: absent - - - name: Bring project up (detached) at {{ project.path }} - community.docker.docker_compose_v2: - project_src: "{{ project.path }}" - state: present - when: pull_result.changed - diff --git a/playbooks/update-dockers.yaml b/playbooks/update-dockers.yaml index aa2ba59..a9ff684 100644 --- a/playbooks/update-dockers.yaml +++ b/playbooks/update-dockers.yaml @@ -3,31 +3,20 @@ hosts: filiprojek-media become: false # user fr is in the docker group vars: - docker_projects: + docker_composes: - path: /srv/docker/immich/ - path: /srv/docker/jellyfin/ - path: /srv/docker/radarr/ - path: /srv/docker/syncthing/ - - tasks: - - name: Process each docker-compose project - ansible.builtin.include_tasks: update-docker-project.yaml - loop: "{{ docker_projects }}" - loop_control: - loop_var: project + roles: + - update_docker - name: Update docker-compose projects fofrweb-s3 hosts: fofrweb-s3 become: false # user filiprojek is in the docker group vars: - docker_projects: + docker_composes: - path: /srv/www/cz/filiprojek/git - path: /srv/www/com/fofrweb/status - - tasks: - - name: Process each docker-compose project - ansible.builtin.include_tasks: update-docker-project.yaml - loop: "{{ docker_projects }}" - loop_control: - loop_var: project - + roles: + - update_docker diff --git a/roles/update_docker/tasks/main.yaml b/roles/update_docker/tasks/main.yaml new file mode 100644 index 0000000..f86d959 --- /dev/null +++ b/roles/update_docker/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +- name: Process each docker-compose project + ansible.builtin.include_tasks: update_compose.yaml + loop: "{{ docker_composes }}" + loop_control: + loop_var: compose + diff --git a/roles/update_docker/tasks/update_compose.yaml b/roles/update_docker/tasks/update_compose.yaml new file mode 100644 index 0000000..0b8057b --- /dev/null +++ b/roles/update_docker/tasks/update_compose.yaml @@ -0,0 +1,24 @@ +--- +- name: Pull updated images for compose at {{ compose.path }} + community.docker.docker_compose_v2_pull: + project_src: "{{ compose.path }}" + register: pull_result + +#- name: Debug pull result for {{ compose.path }} +# debug: +# msg: "Pull changed: {{ pull_result.changed }} for compose at {{ compose.path }}" +# when: pull_result.changed + +- name: Restart compose at {{ compose.path }} if images updated + block: + - name: Bring compose down at {{ compose.path }} + community.docker.docker_compose_v2: + project_src: "{{ compose.path }}" + state: absent + + - name: Bring compose up (detached) at {{ compose.path }} + community.docker.docker_compose_v2: + project_src: "{{ compose.path }}" + state: present + when: pull_result.changed +