xoxys.zigbee2mqtt_docker/tasks/install.yml

112 lines
3.2 KiB
YAML
Raw Normal View History

2018-11-11 03:11:10 +01:00
---
- name: Create directories
file:
path: "{{ item }}"
state: directory
owner: "{{ zigbee2mqtt_user }}"
group: "{{ zigbee2mqtt_group }}"
2019-08-08 13:50:15 +02:00
mode: 0750
2018-11-11 03:11:10 +01:00
with_items:
- "{{ zigbee2mqtt_base_dir }}"
2019-08-08 14:31:09 +02:00
- "{{ zigbee2mqtt_base_dir }}/data"
2019-08-08 13:50:15 +02:00
- "{{ zigbee2mqtt_log_dir }}"
2018-11-11 03:11:10 +01:00
become: True
become_user: root
- block:
2019-08-08 14:31:09 +02:00
# - name: Check data dir
# stat:
# path: "{{ zigbee2mqtt_base_dir }}/data"
# register: __zigbee_datadir
2019-03-09 15:06:37 +01:00
2019-08-08 14:31:09 +02:00
# - 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
2019-03-09 15:06:37 +01:00
2019-08-08 14:31:09 +02:00
# - name: Setup zigbee2mqtt
# git:
# repo: "https://github.com/Koenkk/zigbee2mqtt"
# dest: "{{ zigbee2mqtt_base_dir }}/bin"
# 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: Download release 'v{{ zigbee2mqtt_version }}'
unarchive:
src: "https://github.com/Koenkk/zigbee2mqtt/archive/{{ zigbee2mqtt_version }}.tar.gz"
2018-11-11 03:11:10 +01:00
dest: "{{ zigbee2mqtt_base_dir }}"
2019-08-08 14:31:09 +02:00
remote_src: yes
exclude: "{{ __zigbee2mqtt_release_exclude }}"
extra_opts:
- --strip-components=1
2018-11-11 03:11:10 +01:00
2019-08-08 14:31:09 +02:00
register: __zigbee2mqtt_install
2019-03-09 15:06:37 +01:00
2019-03-09 13:56:21 +01:00
- name: Delete existing node_modules folder
file:
path: "{{ zigbee2mqtt_base_dir }}/node_modules"
state: absent
2019-05-05 00:17:45 +02:00
- name: Install nodejs dependencies
2018-11-11 03:11:10 +01:00
npm:
path: "{{ zigbee2mqtt_base_dir }}"
2019-03-09 16:51:27 +01:00
environment:
2019-08-06 22:32:45 +02:00
PATH: "{{ __zigbee2mqtt_npm_executable | dirname }}:{{ ansible_env.PATH }}"
2018-11-11 03:11:10 +01:00
notify: __zigbee2mqtt_restart
when: zigbee2mqtt_version is version(zigbee2mqtt_current_version, ">")
become: True
become_user: "{{ zigbee2mqtt_user }}"
2019-08-08 13:50:15 +02:00
- block:
2019-08-08 14:31:09 +02:00
# - name: Cleanup base directory
# file:
# path: "{{ zigbee2mqtt_base_dir }}/{{ item }}"
# state: absent
# loop:
# - docker
# - docs
# - images
# - LICENSE
# - README.md
# - scripts
# - test
# - update.sh
2019-08-08 13:50:15 +02:00
- 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 }}"
2018-11-11 03:11:10 +01:00
- block:
2019-03-09 15:12:58 +01:00
- name: Create systemd unit files
template:
src: "etc/systemd/system/zigbee2mqtt.service.j2"
dest: "/etc/systemd/system/zigbee2mqtt.service"
mode: 0644
notify: __zigbee2mqtt_restart
2019-03-09 16:28:22 +01:00
- 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', "=")
2018-11-11 03:11:10 +01:00
become: True
become_user: root