diff --git a/defaults/main.yml b/defaults/main.yml index 5878319..a7cc833 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -14,6 +14,17 @@ zigbee2mqtt_base_dir: /opt/zigbee2mqtt zigbee2mqtt_log_dir: "{{ zigbee2mqtt_base_dir }}/log" zigbee2mqtt_log_level: info +zigbee2mqtt_logrotate_enabled: True +zigbee2mqtt_logrotate_config: + - log: "{{ zigbee2mqtt_log_dir }}/log.txt" + options: + - weekly + - rotate 5 + - maxsize 512K + - compress + - delaycompress + - "create 640 {{ zigbee2mqtt_user }} {{ zigbee2mqtt_group }}" + zigbee2mqtt_homeassistant_enabled: False zigbee2mqtt_permit_join: True diff --git a/tasks/install.yml b/tasks/install.yml index 83d0945..7399c2c 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -38,12 +38,21 @@ become: True become_user: "{{ zigbee2mqtt_user }}" -- name: Deploy configuration file - template: - src: "zigbee2mqtt/data/configuration.yaml.j2" - dest: "{{ zigbee2mqtt_base_dir }}/data/configuration.yaml" - mode: 0600 - notify: __zigbee2mqtt_restart +- block: + - name: Deploy configuration file + template: + src: "zigbee2mqtt/data/configuration.yaml.j2" + dest: "{{ zigbee2mqtt_base_dir }}/data/configuration.yaml" + mode: 0600 + notify: __zigbee2mqtt_restart + + - name: Ensure device files exists + file: + path: "{{ item }}" + state: touch + loop: + - "{{ zigbee2mqtt_base_dir }}/data/devices.yaml" + - "{{ zigbee2mqtt_base_dir }}/data/groups.yaml" become: True become_user: "{{ zigbee2mqtt_user }}" @@ -55,6 +64,15 @@ mode: 0644 notify: __zigbee2mqtt_restart + - name: Copy logrotate config + template: + src: "etc/logrotate.d/config.j2" + dest: "/etc/logrotate.d/zigbee2mqtt" + loop: "{{ zigbee2mqtt_logrotate_config }}" + loop_control: + label: "{{ item.log }}" + when: zigbee2mqtt_logrotate_enabled | bool + - name: Set current version to custom fact template: src: etc/ansible/facts.d/zigbee2mqtt.fact.j2 diff --git a/templates/etc/logrotate.d/config.j2 b/templates/etc/logrotate.d/config.j2 new file mode 100644 index 0000000..143734d --- /dev/null +++ b/templates/etc/logrotate.d/config.j2 @@ -0,0 +1,12 @@ +#jinja2: lstrip_blocks: True +{{ ansible_managed | comment }} +{{ item.log }} { + {% for option in item.options %} + {{ option }} + {% endfor %} + copytruncate + sharedscripts + postrotate + /usr/bin/pkill -HUP rsyslogd + endscript +}