diff --git a/roles/frigate/tasks/main.yml b/roles/frigate/tasks/main.yml index 8189acd..7401e1f 100644 --- a/roles/frigate/tasks/main.yml +++ b/roles/frigate/tasks/main.yml @@ -43,6 +43,22 @@ remote_src: true 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 ansible.builtin.template: dest: /etc/frigate.yml diff --git a/roles/frigate/templates/frigate-container.sysconfig.j2 b/roles/frigate/templates/frigate-container.sysconfig.j2 index c6b07ef..1f9f038 100644 --- a/roles/frigate/templates/frigate-container.sysconfig.j2 +++ b/roles/frigate/templates/frigate-container.sysconfig.j2 @@ -1,3 +1,3 @@ -{% for camera in cctv_cameras %} -FRIGATE_{{ camera.name | upper }}_PASS="{{ camera.pass }}" +{% for camera in ldap_cams.results %} +FRIGATE_{{ camera['l'] | upper }}_PASS="{{ cctv_cameras[camera['cn']] }}" {% endfor %} diff --git a/roles/frigate/templates/frigate.yml.j2 b/roles/frigate/templates/frigate.yml.j2 index 08c83f7..c269f6d 100644 --- a/roles/frigate/templates/frigate.yml.j2 +++ b/roles/frigate/templates/frigate.yml.j2 @@ -25,16 +25,16 @@ record: mode: motion cameras: -{% for camera in cctv_cameras %} - {{ camera.name }}: +{% for camera in ldap_cams.results %} + {{ camera['l'] }}: enabled: true ffmpeg: 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 roles: - 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 roles: - record