--- - name: "set local variables from overrides and defaults" set_fact: homeassistant: "{{ (homeassistant_defaults | combine(homeassistant_override, recursive=True)) if homeassistant_override else homeassistant_defaults }}" - name: ensure that path exists file: path: "{{ path }}/config/homeassistant" state: directory - name: ensure that mosquitto config path exists file: path: "{{ path }}/config/mosquitto" state: directory - name: ensure that mosquitto data path exists file: path: "{{ item }}" state: directory owner: "1883" group: "1883" loop: - "{{ path }}/data/mosquitto" - "{{ path }}/data/mosquitto/log" - name: ensure that zigbee2mqtt data path exists file: path: "{{ path }}/data/zigbee2mqtt" state: directory - name: template docker-compose template: src: compose.yml.j2 dest: "{{ path }}/compose.yml" - name: template .env template: src: .env.j2 dest: "{{ path }}/.env" - name: template mosquitto config template: src: mosquitto.conf.j2 dest: "{{ path }}/config/mosquitto/mosquitto.conf" mode: "0644" - name: template zigbee2mqtt config ansible.builtin.blockinfile: path: "{{ path }}/data/zigbee2mqtt/configuration.yaml" create: true mode: "0644" marker: "# Ansible {mark}" marker_begin: start marker_end: end block: "{{ lookup('template', 'zigbee2mqtt/configuration.yaml.j2') }}" - name: Do configuration include_tasks: ensure_configuration.yml - name: ensure container is running community.docker.docker_compose_v2: project_src: "{{ path }}" project_name: "{{ role_name }}" state: "present" pull: "always" wait: true services: ["mariadb", "mosquitto", "homeassistant", "zigbee2mqtt"] register: _compose_result