ansible-infra/playbooks/roles/zigbee2mqtt/tasks/main.yaml

78 lines
2 KiB
YAML
Raw Normal View History

2022-12-08 23:45:22 +01:00
- name: Ensure acl is installed
ansible.builtin.apt:
name: acl
2022-12-08 23:45:22 +01:00
- name: Ensure git is installed
ansible.builtin.apt:
name: git
2022-12-08 23:45:22 +01:00
- name: Ensure zigbee2mqtt user exists
ansible.builtin.user:
name: zigbee2mqtt
groups:
- zigbee2mqtt
- dialout
group: zigbee2mqtt
- name: Ensure installation directory exists
2022-12-08 23:45:22 +01:00
ansible.builtin.file:
dest: /opt/zigbee2mqtt
state: directory
mode: "755"
2022-12-08 23:45:22 +01:00
owner: zigbee2mqtt
group: zigbee2mqtt
2022-12-08 23:45:22 +01:00
- 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
2022-12-08 23:45:22 +01:00
- 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
2022-12-08 23:45:22 +01:00
- name: Ensure custom zigbee2mqtt data directory exists
ansible.builtin.file:
dest: /home/zigbee2mqtt/zigbee2mqtt_data
state: directory
mode: "755"
2022-12-08 23:45:22 +01:00
owner: zigbee2mqtt
group: zigbee2mqtt
- name: Check configuration file status
ansible.builtin.stat:
path: /home/zigbee2mqtt/zigbee2mqtt_data/configuration.yaml
register: zigbee2mqtt__conf_stat
- name: Ensure configuration file is deployed when it doesn't exist
when: not zigbee2mqtt__conf_stat.stat.exists
2022-12-08 23:45:22 +01:00
ansible.builtin.copy:
content: "{{ zigbee2mqtt__config }}"
dest: /home/zigbee2mqtt/zigbee2mqtt_data/configuration.yaml
mode: "640"
2022-12-08 23:45:22 +01:00
owner: zigbee2mqtt
group: zigbee2mqtt
notify: Restart zigbee2mqtt
2022-12-08 23:45:22 +01:00
- name: Ensure zigbee2mqtt service file is deployed
ansible.builtin.copy:
src: zigbee2mqtt.service
dest: /etc/systemd/system/zigbee2mqtt.service
mode: "644"
2022-12-08 23:45:22 +01:00
owner: root
group: root
notify: Reload systemd-daemon and restart zigbee2mqtt
2022-12-08 23:45:22 +01:00
- name: Ensure zigbee2mqtt is enabled and started
ansible.builtin.systemd:
service: zigbee2mqtt
enabled: true
state: started