Add zigbee2mqtt role and playbook
This commit is contained in:
parent
e084462ae1
commit
51fd3367db
13 changed files with 211 additions and 0 deletions
18
playbooks/roles/zigbee2mqtt/files/zigbee2mqtt.service
Normal file
18
playbooks/roles/zigbee2mqtt/files/zigbee2mqtt.service
Normal file
|
@ -0,0 +1,18 @@
|
|||
[Unit]
|
||||
Description=zigbee2mqtt
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Environment=ZIGBEE2MQTT_DATA=/home/zigbee2mqtt/zigbee2mqtt_data
|
||||
Environment=NODE_ENV=production
|
||||
ExecStart=/usr/bin/npm start
|
||||
WorkingDirectory=/opt/zigbee2mqtt
|
||||
StandardOutput=inherit
|
||||
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
|
||||
StandardError=inherit
|
||||
Restart=always
|
||||
RestartSec=10s
|
||||
User=zigbee2mqtt
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
playbooks/roles/zigbee2mqtt/handlers/main.yml
Normal file
9
playbooks/roles/zigbee2mqtt/handlers/main.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
- name: Restart zigbee2mqtt
|
||||
ansible.builtin.systemd:
|
||||
name: zigbee2mqtt
|
||||
state: restarted
|
||||
- name: Reload systemd-daemon and restart zigbee2mqtt
|
||||
ansible.builtin.systemd:
|
||||
name: zigbee2mqtt
|
||||
state: restarted
|
||||
daemon_reload: true
|
12
playbooks/roles/zigbee2mqtt/meta/argument_specs.yml
Normal file
12
playbooks/roles/zigbee2mqtt/meta/argument_specs.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
argument_specs:
|
||||
main:
|
||||
options:
|
||||
zigbee2mqtt__version:
|
||||
description: zigbee2mqtt version to install
|
||||
type: str
|
||||
required: true
|
||||
zigbee2mqtt__config:
|
||||
description: Configuration file content
|
||||
type: str
|
||||
required: true
|
11
playbooks/roles/zigbee2mqtt/meta/main.yml
Normal file
11
playbooks/roles/zigbee2mqtt/meta/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
dependencies:
|
||||
- role: distribution_check
|
||||
vars:
|
||||
distribution_check__supported_distributions:
|
||||
- name: Debian
|
||||
versions:
|
||||
- "11"
|
||||
- role: nodejs
|
||||
vars:
|
||||
nodejs__major_version: 16
|
62
playbooks/roles/zigbee2mqtt/tasks/main.yml
Normal file
62
playbooks/roles/zigbee2mqtt/tasks/main.yml
Normal file
|
@ -0,0 +1,62 @@
|
|||
- name: Ensure acl is installed
|
||||
ansible.builtin.apt:
|
||||
name: acl
|
||||
- name: Ensure git is installed
|
||||
ansible.builtin.apt:
|
||||
name: git
|
||||
- name: Ensure zigbee2mqtt user exists
|
||||
ansible.builtin.user:
|
||||
name: zigbee2mqtt
|
||||
groups:
|
||||
- zigbee2mqtt
|
||||
- dialout
|
||||
group: zigbee2mqtt
|
||||
- name: Ensure installation dirrectory exists
|
||||
ansible.builtin.file:
|
||||
dest: /opt/zigbee2mqtt
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: zigbee2mqtt
|
||||
group: zigbee2mqtt
|
||||
- name: Ensure zigbee2mqtt repository is cloned
|
||||
become_user: zigbee2mqtt
|
||||
ansible.builtin.git:
|
||||
repo: https://github.com/Koenkk/zigbee2mqtt.git
|
||||
depth: 1
|
||||
dest: /opt/zigbee2mqtt
|
||||
version: "{{ zigbee2mqtt__version }}"
|
||||
notify: Restart zigbee2mqtt
|
||||
- name: Ensure npm dependencies are installed
|
||||
become_user: zigbee2mqtt
|
||||
community.general.npm:
|
||||
path: /opt/zigbee2mqtt
|
||||
ci: true
|
||||
changed_when: false # installs packages according to package-lock.json, but always reports a change
|
||||
- name: Ensure custom zigbee2mqtt data directory exists
|
||||
ansible.builtin.file:
|
||||
dest: /home/zigbee2mqtt/zigbee2mqtt_data
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: zigbee2mqtt
|
||||
group: zigbee2mqtt
|
||||
- name: Ensure configuration file is deployed
|
||||
ansible.builtin.copy:
|
||||
content: "{{ zigbee2mqtt__config }}"
|
||||
dest: /home/zigbee2mqtt/zigbee2mqtt_data/configuration.yaml
|
||||
mode: 0640
|
||||
owner: zigbee2mqtt
|
||||
group: zigbee2mqtt
|
||||
notify: Restart zigbee2mqtt
|
||||
- name: Ensure zigbee2mqtt service file is deployed
|
||||
ansible.builtin.copy:
|
||||
src: zigbee2mqtt.service
|
||||
dest: /etc/systemd/system/zigbee2mqtt.service
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: root
|
||||
notify: Reload systemd-daemon and restart zigbee2mqtt
|
||||
- name: Ensure zigbee2mqtt is enabled and started
|
||||
ansible.builtin.systemd:
|
||||
service: zigbee2mqtt
|
||||
enabled: true
|
||||
state: started
|
Loading…
Add table
Add a link
Reference in a new issue