diff --git a/ansible/playbooks/indri.yml b/ansible/playbooks/indri.yml index 442f9f8..fdbf082 100644 --- a/ansible/playbooks/indri.yml +++ b/ansible/playbooks/indri.yml @@ -78,6 +78,23 @@ no_log: true tags: [caddy] + # Jellyfin API key for metrics collection + - name: Fetch Jellyfin API key + ansible.builtin.command: + cmd: op --vault vg6xf6vvfmoh5hqjjhlhbeoaie item get ceywxkcd3z7najsy2nmmbs2vke --fields credential --reveal + delegate_to: localhost + register: _jellyfin_metrics_api_key + changed_when: false + no_log: true + check_mode: false + tags: [jellyfin_metrics] + + - name: Set Jellyfin API key fact + ansible.builtin.set_fact: + jellyfin_metrics_api_key: "{{ _jellyfin_metrics_api_key.stdout }}" + no_log: true + tags: [jellyfin_metrics] + roles: - role: alloy tags: alloy diff --git a/ansible/roles/jellyfin_metrics/tasks/main.yml b/ansible/roles/jellyfin_metrics/tasks/main.yml index 54db57a..8cbe412 100644 --- a/ansible/roles/jellyfin_metrics/tasks/main.yml +++ b/ansible/roles/jellyfin_metrics/tasks/main.yml @@ -1,4 +1,27 @@ --- +- name: Fetch Jellyfin API key (when running with --tags jellyfin_metrics) + ansible.builtin.command: + cmd: op --vault vg6xf6vvfmoh5hqjjhlhbeoaie item get ceywxkcd3z7najsy2nmmbs2vke --fields credential --reveal + delegate_to: localhost + register: jellyfin_metrics_api_key_fallback + changed_when: false + no_log: true + check_mode: false + when: jellyfin_metrics_api_key is not defined + +- name: Set Jellyfin API key fact (fallback) + ansible.builtin.set_fact: + jellyfin_metrics_api_key: "{{ jellyfin_metrics_api_key_fallback.stdout }}" + no_log: true + when: jellyfin_metrics_api_key is not defined + +- name: Write Jellyfin API key file + ansible.builtin.copy: + content: "{{ jellyfin_metrics_api_key }}" + dest: "{{ jellyfin_metrics_api_key_file }}" + mode: '0600' + no_log: true + - name: Ensure bin directory exists ansible.builtin.file: path: "{{ jellyfin_metrics_script | dirname }}"