- name: Update Homarr hosts: pve2_vm gather_facts: false become: true become_method: sudo vars: homarr_compose_local: "{{ playbook_dir }}/docker-compose/docker-compose-homarr.yml" homarr_compose_remote_dir: "/data/compose/homarr" homarr_compose_remote: "{{ homarr_compose_remote_dir }}/docker-compose-homarr.yml" homarr_service: homarr homarr_port: 7575 tasks: - name: Show effective user (debug) ansible.builtin.command: id register: whoami_result changed_when: false - name: Print effective user (debug) ansible.builtin.debug: var: whoami_result.stdout - name: Ensure remote compose directory exists ansible.builtin.file: path: "{{ homarr_compose_remote_dir }}" state: directory mode: "0755" - name: Test write access to remote dir (as become) ansible.builtin.command: "sh -lc 'echo test > {{ homarr_compose_remote_dir }}/.ansible_write_test && rm -f {{ homarr_compose_remote_dir }}/.ansible_write_test'" changed_when: false - name: Copy compose file from controller to remote host ansible.builtin.copy: src: "{{ homarr_compose_local }}" dest: "{{ homarr_compose_remote }}" mode: "0644" - name: Pull latest Homarr image community.docker.docker_compose_v2: project_src: "{{ homarr_compose_remote_dir }}" files: - "{{ homarr_compose_remote | basename }}" pull: always - name: Recreate Homarr service community.docker.docker_compose_v2: project_src: "{{ homarr_compose_remote_dir }}" files: - "{{ homarr_compose_remote | basename }}" services: - "{{ homarr_service }}" state: present recreate: always - name: Wait for Homarr port ansible.builtin.wait_for: host: 127.0.0.1 port: "{{ homarr_port }}" timeout: 60 - name: Check Homarr HTTP endpoint ansible.builtin.uri: url: "http://127.0.0.1:{{ homarr_port }}/" status_code: 200