xoxys.zigbee2mqtt_docker/tasks/install.yml
Robert Kaussow e4a509776e
Some checks failed
continuous-integration/drone/push Build is failing
add configuration template
2019-08-08 13:50:15 +02:00

102 lines
2.8 KiB
YAML

---
- name: Create directories
file:
path: "{{ item }}"
state: directory
owner: "{{ zigbee2mqtt_user }}"
group: "{{ zigbee2mqtt_group }}"
mode: 0750
with_items:
- "{{ zigbee2mqtt_base_dir }}"
- "{{ zigbee2mqtt_log_dir }}"
become: True
become_user: root
- block:
- name: Check data dir
stat:
path: "{{ zigbee2mqtt_base_dir }}/data"
register: __zigbee_datadir
- name: Backup data directory
synchronize:
src: "{{ zigbee2mqtt_base_dir }}/data/"
dest: "/tmp/zigbee_data"
recursive: yes
delegate_to: "{{ inventory_hostname }}"
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
synchronize:
src: "/tmp/zigbee_data/"
dest: "{{ zigbee2mqtt_base_dir }}/data"
recursive: yes
delegate_to: "{{ inventory_hostname }}"
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 dependencies
npm:
path: "{{ zigbee2mqtt_base_dir }}"
environment:
PATH: "{{ __zigbee2mqtt_npm_executable | dirname }}:{{ ansible_env.PATH }}"
when: __zigbee2mqtt_install.changed
notify: __zigbee2mqtt_restart
when: zigbee2mqtt_version is version(zigbee2mqtt_current_version, ">")
become: True
become_user: "{{ zigbee2mqtt_user }}"
- block:
- name: Cleanup base directory
file:
path: "{{ zigbee2mqtt_base_dir }}/{{ item }}"
state: absent
loop:
- docker
- docs
- images
- LICENSE
- README.md
- scripts
- test
- update.sh
- name: Deploy configuration file
template:
src: "zigbee2mqtt/data/configuration.yaml.j2"
dest: "{{ zigbee2mqtt_base_dir }}/data/configuration.yaml"
mode: 0600
notify: __zigbee2mqtt_restart
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