--- - 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: /path/to/foo 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: 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 become: True become_user: root