configpolicy/roles/frigate/tasks/main.yml

116 lines
2.2 KiB
YAML

- name: load architecture-specific values
include_vars: '{{ item }}'
with_first_found:
- '{{ ansible_architecture }}.yml'
- defaults.yml
tags:
- always
- name: ensure podman is installed
package:
name: '{{ frigate_podman_packages }}'
state: present
tags:
- install
- name: ensure frigate user exists
user:
name: frigate
system: true
home: /var/lib/frigate
createhome: false
register: frigate_user
tags:
- user
- name: ensure frigate home directory exists
file:
path: /var/lib/frigate
owner: frigate
group: frigate
mode: '0755'
state: directory
tags:
- datadir
- name: ensure frigate tmp directory exists
file:
path: /var/lib/frigate/tmp
owner: frigate
group: frigate
mode: '0700'
state: directory
tags:
- datadir
- name: ensure frigate container image is available
podman_image:
name: docker.io/blakeblackshear/frigate:{{ frigate_image_tag }}
tag: stable
state: present
force: '{{ frigate_update|d|bool }}'
notify:
- restart frigate
tags:
- container-image
- container
- name: ensure frigate systemd unit is installed
template:
src: frigate.service.j2
dest: /etc/systemd/system/frigate.service
mode: '0644'
notify:
- reload systemd
- restart frigate
tags:
- systemd
- name: ensure frigate starts at boot
service:
name: frigate
enabled: true
tags:
- service
- name: ensure frigate configuration directory exists
file:
path: /etc/frigate
mode: '0750'
owner: root
group: frigate
state: directory
tags:
- config
- name: ensure frigate is configured
copy:
dest: /etc/frigate/frigate.yml
content: >-
{{ frigate_config|to_nice_yaml(indent=2) }}
mode: '0640'
owner: root
group: frigate
notify:
- restart frigate
tags:
- config
- meta: flush_handlers
- name: ensure frigate is running
service:
name: frigate
state: started
tags:
- service
- name: ensure firewall is configured for frigate
firewalld:
port: '{{ item }}/tcp'
immediate: true
permanent: false
state: enabled
loop:
- 5000 # Frigate web UI/API
- 1935 # RTMP
notify: save firewalld configuration
tags:
- firewall