--- - name: Create directories file: path: "{{ item }}" state: directory owner: "{{ zigbee2mqtt_user }}" group: "{{ zigbee2mqtt_group }}" recurse: True with_items: - "{{ zigbee2mqtt_base_dir }}" become: True become_user: root - block: - name: Check data dir stat: path: "{{ zigbee2mqtt_base_dir }}/data" register: __zigbee_datadir - name: Backup data directory copy: remote_src: yes src: "{{ zigbee2mqtt_base_dir }}/data" dest: "/tmp/zigbee_data" when: __zigbee_datadir.stat.exists - name: Setup zigbee2mqtt git: repo: "https://github.com/Koenkk/zigbee2mqtt" dest: "{{ zigbee2mqtt_base_dir }}" version: "{{ zigbee2mqtt_version }}" force: yes register: __zigbee2mqtt_install - name: Restore data directory copy: remote_src: yes src: "/tmp/zigbee_data" dest: "{{ zigbee2mqtt_base_dir }}/data" when: __zigbee_datadir.stat.exists - name: Delete existing node_modules folder file: path: "{{ zigbee2mqtt_base_dir }}/node_modules" state: absent when: __zigbee2mqtt_install.changed - name: Install nodejs npm: executable: "{{ __zigbee2mqtt_npm_executable }}" path: "{{ zigbee2mqtt_base_dir }}" when: __zigbee2mqtt_install.changed notify: __zigbee2mqtt_restart when: zigbee2mqtt_version is version(zigbee2mqtt_current_version, ">") become: True become_user: "{{ zigbee2mqtt_user }}" - block: - name: Create systemd unit files template: src: "etc/systemd/system/zigbee2mqtt.service.j2" dest: "/etc/systemd/system/zigbee2mqtt.service" mode: 0644 notify: __zigbee2mqtt_restart - name: Set current version to custom fact template: src: etc/ansible/facts.d/zigbee2mqtt.fact.j2 dest: /etc/ansible/facts.d/zigbee2mqtt.fact mode: 0644 when: zigbee2mqtt_version is version(zigbee2mqtt_current_version, ">") or zigbee2mqtt_current_version is version('0.0.0', "=") become: True become_user: root