diff --git a/frigate.yml b/frigate.yml index 176425d..1fe4b20 100644 --- a/frigate.yml +++ b/frigate.yml @@ -6,3 +6,5 @@ tags: frigate - role: frigate-caddy tags: frigate-caddy + - role: frigate-exporter + tags: frigate-exporter diff --git a/roles/frigate-exporter/files/frigate-exporter.container b/roles/frigate-exporter/files/frigate-exporter.container new file mode 100644 index 0000000..a55cb8e --- /dev/null +++ b/roles/frigate-exporter/files/frigate-exporter.container @@ -0,0 +1,18 @@ +# vim: set ft=systemd : +[Unit] +Description=Prometheus exporter for Frigate +After=network.target +Wants=network.target +After=frigate.service + +[Container] +Image=git.pyrocufflink.net/containerimages/prometheus-frigate-exporter +Pull=never +Environment=FRIGATE_STATS_URL=http://localhost:5000/api/stats +User=45005 +Group=45005 +NoNewPrivileges=true +Network=host + +[Install] +WantedBy=multi-user.target diff --git a/roles/frigate-exporter/handlers/main.yml b/roles/frigate-exporter/handlers/main.yml new file mode 100644 index 0000000..91091e2 --- /dev/null +++ b/roles/frigate-exporter/handlers/main.yml @@ -0,0 +1,4 @@ +- name: restart frigate-exporter + service: + name: frigate-exporter + state: restarted diff --git a/roles/frigate-exporter/tasks/main.yml b/roles/frigate-exporter/tasks/main.yml new file mode 100644 index 0000000..b237b52 --- /dev/null +++ b/roles/frigate-exporter/tasks/main.yml @@ -0,0 +1,47 @@ +- name: ensure frigate-exporter container image is available + podman_image: + name: git.pyrocufflink.net/containerimages/prometheus-frigate-exporter:latest + state: present + environment: + http_proxy: '{{ http_proxy }}' + https_proxy: '{{ https_proxy }}' + tags: + - install + - container-image + +- name: ensure frigate-exporter container unit is defined + copy: + src: frigate-exporter.container + dest: /etc/containers/systemd/frigate-exporter.container + owner: root + group: root + mode: u=rw,go=r + notify: + - reload systemd + - restart frigate-exporter + tags: + - container + - systemd + +- name: flush handlers + meta: flush_handlers + +- name: ensure frigate-exporter is running + service: + name: frigate-exporter + state: started + tags: + - service + +- name: ensure firewall is configured for frigate-exporter + firewalld: + port: 9100/tcp + immediate: '{{ item == "immediate" }}' + permanent: '{{ item == "permanent" }}' + state: enabled + loop: + - immediate + - permanent + when: host_uses_firewalld|d(true) + tags: + - firwalld