From 931761b1a58569dca49e281e3189559a54a6b9c7 Mon Sep 17 00:00:00 2001 From: Marco Ferrari Date: Sun, 19 Jan 2025 16:27:05 +0100 Subject: [PATCH] chore: deploy media stack and refactor playbooks --- .github/workflows/test-ansible.yaml | 2 -- .../hl01.edge.lab.ferrari.how/main.yaml | 3 +++ config/ansible/playbooks/home-lab-node.yaml | 6 ------ config/ansible/playbooks/main.yaml | 6 ++++++ .../tasks/include-variables.yaml | 5 +++++ .../tasks/register-intel-igpu-facts.yaml | 20 +++++++++++++++++++ .../templates/media-stack/compose.yaml.jinja | 8 ++++++++ 7 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 config/ansible/roles/ferrarimarco_home_lab_node/tasks/register-intel-igpu-facts.yaml diff --git a/.github/workflows/test-ansible.yaml b/.github/workflows/test-ansible.yaml index 155ca0dfe..6afcb1756 100644 --- a/.github/workflows/test-ansible.yaml +++ b/.github/workflows/test-ansible.yaml @@ -72,14 +72,12 @@ jobs: strategy: matrix: test_container_image_id: - - "geerlingguy/docker-debian11-ansible:latest" - "geerlingguy/docker-debian12-ansible:latest" test_playbook_name: - boot-bare-metal - bootstrap - container-engine - coral - - home-lab-node - proxmox-node - setup-disks - main diff --git a/config/ansible/inventory/host_vars/hl01.edge.lab.ferrari.how/main.yaml b/config/ansible/inventory/host_vars/hl01.edge.lab.ferrari.how/main.yaml index 1889f360f..d0a7a68a6 100644 --- a/config/ansible/inventory/host_vars/hl01.edge.lab.ferrari.how/main.yaml +++ b/config/ansible/inventory/host_vars/hl01.edge.lab.ferrari.how/main.yaml @@ -4,6 +4,7 @@ configure_backup_restic: true configure_docker: true configure_frigate: true configure_home_assistant: true +configure_media_stack: true configure_monitoring_sata: false has_coral_pci_accelerator: true has_intel_igpu: true @@ -39,3 +40,5 @@ partitions_to_create: partition_number: 1 - device: "{{ data_disk_device }}" partition_number: 1 + +start_media_stack: false diff --git a/config/ansible/playbooks/home-lab-node.yaml b/config/ansible/playbooks/home-lab-node.yaml index 4863769c6..7ce7a181f 100644 --- a/config/ansible/playbooks/home-lab-node.yaml +++ b/config/ansible/playbooks/home-lab-node.yaml @@ -1,10 +1,4 @@ --- -- name: Import the container engine playbook - ansible.builtin.import_playbook: container-engine.yaml - -- name: Import the disk setup playbook - ansible.builtin.import_playbook: setup-disks.yaml - - name: Configure Home Lab nodes hosts: all gather_facts: true diff --git a/config/ansible/playbooks/main.yaml b/config/ansible/playbooks/main.yaml index 52b53975d..330715923 100644 --- a/config/ansible/playbooks/main.yaml +++ b/config/ansible/playbooks/main.yaml @@ -11,5 +11,11 @@ - name: Import the proxmox node playbook ansible.builtin.import_playbook: proxmox-node.yaml +- name: Import the disk setup playbook + ansible.builtin.import_playbook: setup-disks.yaml + +- name: Import the coral playbook + ansible.builtin.import_playbook: coral.yaml + - name: Import the home lab node playbook ansible.builtin.import_playbook: home-lab-node.yaml diff --git a/config/ansible/roles/ferrarimarco_home_lab_node/tasks/include-variables.yaml b/config/ansible/roles/ferrarimarco_home_lab_node/tasks/include-variables.yaml index 40dfb65ca..42938d5e9 100644 --- a/config/ansible/roles/ferrarimarco_home_lab_node/tasks/include-variables.yaml +++ b/config/ansible/roles/ferrarimarco_home_lab_node/tasks/include-variables.yaml @@ -263,3 +263,8 @@ - name: Register OS package setup tasks ansible.builtin.include_tasks: file: register-os-package-setup-facts.yaml + +- name: Register Intel iGPU tasks + ansible.builtin.include_tasks: + file: register-intel-igpu-facts.yaml + when: has_intel_igpu | default(false) diff --git a/config/ansible/roles/ferrarimarco_home_lab_node/tasks/register-intel-igpu-facts.yaml b/config/ansible/roles/ferrarimarco_home_lab_node/tasks/register-intel-igpu-facts.yaml new file mode 100644 index 000000000..c5090e04e --- /dev/null +++ b/config/ansible/roles/ferrarimarco_home_lab_node/tasks/register-intel-igpu-facts.yaml @@ -0,0 +1,20 @@ +--- +- name: Get render group id + ansible.builtin.getent: + database: group + key: render + +- name: Debug getent_group + ansible.builtin.debug: + var: getent_group + verbosity: 1 + +- name: Register facts for Intel iGPU + ansible.builtin.set_fact: + # Format: {"render": ['x', '104', '']} + intel_igpu_render_group_id: "{{ getent_group['render'][1] }}" + +- name: Debug intel_igpu_render_group_id + ansible.builtin.debug: + var: intel_igpu_render_group_id + verbosity: 1 diff --git a/config/ansible/roles/ferrarimarco_home_lab_node/templates/media-stack/compose.yaml.jinja b/config/ansible/roles/ferrarimarco_home_lab_node/templates/media-stack/compose.yaml.jinja index ff967198c..1eff8b055 100644 --- a/config/ansible/roles/ferrarimarco_home_lab_node/templates/media-stack/compose.yaml.jinja +++ b/config/ansible/roles/ferrarimarco_home_lab_node/templates/media-stack/compose.yaml.jinja @@ -13,6 +13,14 @@ services: jellyfin: image: {{ container_images_ids["jellyfin"] }} container_name: jellyfin + devices: +{% if has_intel_igpu | default(false) %} + - /dev/dri/renderD128:/dev/dri/renderD128 +{% endif %} + group_add: +{% if has_intel_igpu | default(false) %} + - {{ intel_igpu_render_group_id }} +{% endif %} volumes: - {{ jellyfin_configuration_directory_path }}:/config - {{ jellyfin_cache_directory_path }}:/cache