ci / test (push) Failing after 22s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
1.6 KiB
YAML
39 lines
1.6 KiB
YAML
# Gemeinsam für Compose (main.yml) und k3s (k3s.yml): Profile prüfen, P2000 per Name finden, Modelle laden.
|
|
- name: Profile prüfen
|
|
ansible.builtin.assert:
|
|
that:
|
|
- llamacpp_profiles | length > 0
|
|
- llamacpp_profiles | difference(llamacpp_services.keys() | list) | length == 0
|
|
fail_msg: "llamacpp_profiles muss aus {{ llamacpp_services.keys() | list }} bestehen (Inventar, Gruppe gpu_llamacpp)"
|
|
|
|
# --- Kartenwahl: UUID statt Index, geprüft über den Kartennamen ---
|
|
- name: Karten in der VM lesen
|
|
ansible.builtin.command: nvidia-smi --query-gpu=index,uuid,name --format=csv,noheader
|
|
register: llamacpp_smi
|
|
changed_when: false
|
|
|
|
- name: UUID je Dienst aus dem Kartennamen bestimmen
|
|
ansible.builtin.set_fact:
|
|
llamacpp_gpu_env: >-
|
|
{{ llamacpp_gpu_env | default({}) | combine({item.key: (llamacpp_smi.stdout_lines
|
|
| map('split', ', ') | selectattr(2, 'equalto', item.value) | map(attribute=1) | first | default(''))}) }}
|
|
loop: "{{ llamacpp_cards | dict2items }}"
|
|
|
|
- name: Jede gewünschte Karte ist vorhanden
|
|
ansible.builtin.assert:
|
|
that: llamacpp_gpu_env[item.key] is match('GPU-')
|
|
fail_msg: "{{ item.value }} für {{ item.key }} nicht gefunden: {{ llamacpp_smi.stdout_lines }}"
|
|
loop: "{{ llamacpp_cards | dict2items }}"
|
|
|
|
# --- Modelle ---
|
|
- name: Modelle laden (Prüfsumme gegen Hugging Face)
|
|
ansible.builtin.get_url:
|
|
url: "{{ item.url }}"
|
|
dest: "{{ llamacpp_models_dir }}/{{ item.dest }}"
|
|
checksum: "{{ item.checksum }}"
|
|
mode: "0644"
|
|
timeout: 120
|
|
loop: "{{ llamacpp_profiles | map('extract', llamacpp_models) | flatten }}"
|
|
loop_control:
|
|
label: "{{ item.dest }}"
|