initial commit
This commit is contained in:
parent
e4820568a3
commit
1a8666a452
5
defaults/main.yml
Normal file
5
defaults/main.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
zigbee2mqtt_version: 0.1.8
|
||||||
|
zigbee2mqtt_group: zigbee2mqtt
|
||||||
|
zigbee2mqtt_user: zigbee2mqtt
|
||||||
|
zigbee2mqtt_base_dir: /opt/zigbee2mqtt
|
9
files/main.yml
Normal file
9
files/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: Restart zigbee2mqtt service
|
||||||
|
systemd:
|
||||||
|
state: restarted
|
||||||
|
daemon_reload: yes
|
||||||
|
name: zigbee2mqtt
|
||||||
|
listen: __zigbee2mqtt_restart
|
||||||
|
become: True
|
||||||
|
become_user: root
|
39
tasks/install.yml
Normal file
39
tasks/install.yml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
- 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: Setup zigbee2mqtt
|
||||||
|
git:
|
||||||
|
repo: "https://github.com/Koenkk/zigbee2mqtt"
|
||||||
|
dest: "{{ zigbee2mqtt_base_dir }}"
|
||||||
|
version: "{{ zigbee2mqtt_version }}"
|
||||||
|
register: __zigbee2mqtt_install
|
||||||
|
|
||||||
|
- 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: __openhab_restart
|
||||||
|
become: True
|
||||||
|
become_user: root
|
3
tasks/main.yml
Normal file
3
tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: prepare.yml
|
||||||
|
- import_tasks: install.yml
|
9
tasks/post_tasks.yml
Normal file
9
tasks/post_tasks.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure zigbee2mqtt service is up and running
|
||||||
|
systemd:
|
||||||
|
state: started
|
||||||
|
daemon_reload: yes
|
||||||
|
enabled: yes
|
||||||
|
name: zigbee2mqtt
|
||||||
|
become: True
|
||||||
|
become_user: root
|
45
tasks/prepare.yml
Normal file
45
tasks/prepare.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
- block:
|
||||||
|
- name: Create local facts dir
|
||||||
|
file:
|
||||||
|
path: /etc/ansible/facts.d
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Setup local fact script
|
||||||
|
get_url:
|
||||||
|
url: https://git.rknet.org/ansible/custom_facts/raw/branch/master/zigbee2mqtt.py
|
||||||
|
dest: /etc/ansible/facts.d/nodejs.fact
|
||||||
|
mode: 0755
|
||||||
|
register: __nodejs_add_fact
|
||||||
|
|
||||||
|
- name: Update facts
|
||||||
|
setup:
|
||||||
|
filter: "*"
|
||||||
|
when: __nodejs_add_fact.changed
|
||||||
|
|
||||||
|
- name: Set current zigbee2mqtt version
|
||||||
|
set_fact:
|
||||||
|
zigbee2mqtt_current_version: "{{ ansible_local.zigbee2mqtt.version }}"
|
||||||
|
failed_when: ansible_local.zigbee2mqtt.error
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
msg: Current version is '{{ zigbee2mqtt_current_version }}'
|
||||||
|
|
||||||
|
- name: Install requirements
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- git
|
||||||
|
|
||||||
|
- name: Create group '{{ zigbee2mqtt_group }}'
|
||||||
|
group:
|
||||||
|
name: "{{ zigbee2mqtt_group }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create user '{{ zigbee2mqtt_user }}'
|
||||||
|
user:
|
||||||
|
name: "{{ zigbee2mqtt_user }}"
|
||||||
|
group: "{{ zigbee2mqtt_group }}"
|
||||||
|
become: True
|
||||||
|
become_user: root
|
15
templates/etc/systemd/system/zigbee2mqtt.service.j2
Normal file
15
templates/etc/systemd/system/zigbee2mqtt.service.j2
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=zigbee2mqtt
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=npm start
|
||||||
|
WorkingDirectory="{{ zigbee2mqtt_base_dir }}"
|
||||||
|
StandardError=inherit
|
||||||
|
Restart=always
|
||||||
|
User={{ zigbee2mqtt_user }}
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user