# update_homarr2.yml - name: Update Homarr hosts: pve2_vm gather_facts: false vars: homarr_project: homarr # Local (controller) directory with compose files compose_local_dir: "{{ playbook_dir }}/docker-compose" # Remote (target) staging directory - writable for the SSH user compose_remote_dir: "/home/{{ ansible_user }}/.ansible-compose/docker-compose" # Which compose file inside the directory to use homarr_compose_filename: "docker-compose-homarr.yml" homarr_service: homarr homarr_port: 7575 tasks: - name: Ensure remote staging directory exists ansible.builtin.file: path: "{{ compose_remote_dir }}" state: directory mode: "0755" - name: Sync compose directory from controller to remote host ansible.posix.synchronize: src: "{{ compose_local_dir }}/" dest: "{{ compose_remote_dir }}/" delete: true recursive: true - name: Pull latest Homarr image community.docker.docker_compose_v2: project_src: "{{ compose_remote_dir }}" files: - "{{ homarr_compose_filename }}" pull: always - name: Recreate Homarr service community.docker.docker_compose_v2: project_src: "{{ compose_remote_dir }}" files: - "{{ homarr_compose_filename }}" 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