From 7ee0bdba59e05e1bae37e5f651f627a4ec238317 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Thu, 27 Mar 2025 16:39:57 +0100 Subject: [PATCH] Added: Update docker compose projects playbook --- group_vars/server.yaml | 2 ++ host_vars/filiprojek-media.yml | 6 +++++ host_vars/fofrweb-s3.yml | 6 +++++ host_vars/tests3.yaml | 3 +++ hosts | 38 ++++++++++++---------------- playbooks/packages.yaml | 6 +++++ playbooks/update-docker-project.yaml | 23 +++++++++++++++++ playbooks/update-dockers.yaml | 33 ++++++++++++++++++++++++ 8 files changed, 95 insertions(+), 22 deletions(-) create mode 100644 group_vars/server.yaml create mode 100644 host_vars/filiprojek-media.yml create mode 100644 host_vars/fofrweb-s3.yml create mode 100644 host_vars/tests3.yaml create mode 100644 playbooks/update-docker-project.yaml create mode 100644 playbooks/update-dockers.yaml diff --git a/group_vars/server.yaml b/group_vars/server.yaml new file mode 100644 index 0000000..5a23ec1 --- /dev/null +++ b/group_vars/server.yaml @@ -0,0 +1,2 @@ +--- +ansible_become_method: doas diff --git a/host_vars/filiprojek-media.yml b/host_vars/filiprojek-media.yml new file mode 100644 index 0000000..e4f1b26 --- /dev/null +++ b/host_vars/filiprojek-media.yml @@ -0,0 +1,6 @@ +--- +ansible_connection: ssh +ansible_user: fr +ansible_host: 10.123.0.11 +ansible_ssh_common_args: '-o StrictHostKeyChecking=no' +ansible_ssh_private_key_file: ~/.ssh/fr/fr-ansible@media.filiprojek.cz.ssh diff --git a/host_vars/fofrweb-s3.yml b/host_vars/fofrweb-s3.yml new file mode 100644 index 0000000..c6d47d9 --- /dev/null +++ b/host_vars/fofrweb-s3.yml @@ -0,0 +1,6 @@ +--- +ansible_connection: ssh +ansible_user: filiprojek +ansible_host: 10.123.0.1 +ansible_ssh_common_args: '-o StrictHostKeyChecking=no' +ansible_ssh_private_key_file: ~/.ssh/fofrweb/filiprojek@s3.fofrweb.com_2.ssh diff --git a/host_vars/tests3.yaml b/host_vars/tests3.yaml new file mode 100644 index 0000000..1c88b29 --- /dev/null +++ b/host_vars/tests3.yaml @@ -0,0 +1,3 @@ +ansible_host: localhost +ansible_port: 2222 +ansible_user: root diff --git a/hosts b/hosts index b1a8fcd..bee8d4f 100644 --- a/hosts +++ b/hosts @@ -1,25 +1,19 @@ [server] +#10.123.0.1 # s3 +#10.123.0.4 # rpi +#10.123.0.10 # microlab +#10.123.0.11 # media +#tests3 +fofrweb-s3 +filiprojek-media -10.123.0.1 # s3 -10.123.0.4 # rpi -10.123.0.10 # microlab -10.123.0.11 # media - -[server:vars] - -ansible_user=ansible -ansible_ssh_private_key_file=~/.ssh/fofrweb/ansible@fofrweb.com.ssh -ansible_become_method=doas - -[pc] - -10.123.0.100 # x230 -10.123.0.102 # filip-laptop -10.123.0.103 # t480 - -[pc:vars] - -ansible_user=fr -# ansible_ssh_private_key_file=~/.ssh/fofrweb/ansible@fofrweb.com.ssh -ansible_become_method=doas +#[pc] +#10.123.0.100 # x230 +#10.123.0.102 # filip-laptop +#10.123.0.103 # t480 +# +#[pc:vars] +#ansible_user=fr +## ansible_ssh_private_key_file=~/.ssh/fofrweb/ansible@fofrweb.com.ssh +#ansible_become_method=doas diff --git a/playbooks/packages.yaml b/playbooks/packages.yaml index f39beec..4dc8db8 100644 --- a/playbooks/packages.yaml +++ b/playbooks/packages.yaml @@ -8,3 +8,9 @@ name: bash,vim,htop,neofetch state: latest + - name: install docker + become: true + apk: + name: docker + state: present + diff --git a/playbooks/update-docker-project.yaml b/playbooks/update-docker-project.yaml new file mode 100644 index 0000000..34d260a --- /dev/null +++ b/playbooks/update-docker-project.yaml @@ -0,0 +1,23 @@ +--- +- 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 new file mode 100644 index 0000000..aa2ba59 --- /dev/null +++ b/playbooks/update-dockers.yaml @@ -0,0 +1,33 @@ +--- +- name: Update docker-compose projects on filiprojek-media + hosts: filiprojek-media + become: false # user fr is in the docker group + vars: + docker_projects: + - 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 + +- name: Update docker-compose projects fofrweb-s3 + hosts: fofrweb-s3 + become: false # user filiprojek is in the docker group + vars: + docker_projects: + - 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 +