frigate: Get cameras from LDAP

This commit is contained in:
Timo Makinen 2025-04-20 16:52:23 +00:00
parent c88f8e6374
commit ec8ae902ed
3 changed files with 22 additions and 6 deletions

View file

@ -43,6 +43,22 @@
remote_src: true remote_src: true
notify: Restart frigate notify: Restart frigate
- name: Get cameras from LDAP
community.general.ldap_search:
attrs:
- cn
- l
client_cert: >-
{{ hostvars[ansible_server]['tls_certs'] + '/' + ansible_server }}.crt
client_key: >-
{{ hostvars[ansible_server]['tls_private'] + '/' + ansible_server }}.key
dn: "{{ ldap_basedn }}"
filter: (&(objectClass=ipHost)(cn=ipcam*.cam.foo.sh))
scope: subordinate
server_uri: "ldaps://{{ ldap_server[0] }}"
delegate_to: localhost
register: ldap_cams
- name: Create config - name: Create config
ansible.builtin.template: ansible.builtin.template:
dest: /etc/frigate.yml dest: /etc/frigate.yml

View file

@ -1,3 +1,3 @@
{% for camera in cctv_cameras %} {% for camera in ldap_cams.results %}
FRIGATE_{{ camera.name | upper }}_PASS="{{ camera.pass }}" FRIGATE_{{ camera['l'] | upper }}_PASS="{{ cctv_cameras[camera['cn']] }}"
{% endfor %} {% endfor %}

View file

@ -25,16 +25,16 @@ record:
mode: motion mode: motion
cameras: cameras:
{% for camera in cctv_cameras %} {% for camera in ldap_cams.results %}
{{ camera.name }}: {{ camera['l'] }}:
enabled: true enabled: true
ffmpeg: ffmpeg:
inputs: inputs:
- path: "rtsp://viewer:{FRIGATE_{{ camera.name | upper }}_PASS}@{{ camera.addr}}/h264Preview_01_sub" - path: "rtsp://viewer:{FRIGATE_{{ camera['l'] | upper }}_PASS}@{{ camera['cn'] }}/h264Preview_01_sub"
input_args: preset-rtsp-restream input_args: preset-rtsp-restream
roles: roles:
- detect - detect
- path: "rtsp://viewer:{FRIGATE_{{ camera.name | upper }}_PASS}@{{ camera.addr}}/h264Preview_01_main" - path: "rtsp://viewer:{FRIGATE_{{ camera['l'] | upper }}_PASS}@{{ camera['cn'] }}/h264Preview_01_main"
input_args: preset-rtsp-restream input_args: preset-rtsp-restream
roles: roles:
- record - record