From 94c58a80cefc538e0478d29fb8335c579129403e Mon Sep 17 00:00:00 2001 From: sascha Date: Thu, 25 Jun 2026 10:29:39 +0200 Subject: [PATCH] Pi5 'butler' (arm64) als AI-Orchestrator-Host aufnehmen - pfannkuchen.ini: neue Gruppe [ai] mit butler (10.5.85.2), child in all/backup/hawser - docker-Rolle: arch dynamisch via 'dpkg --print-architecture' statt hardcoded amd64 (check_mode:false, damit --check auf ARM nicht leeres arch erzeugt) -> arm64-tauglich - base-Rolle: Raspberry Pi OS erkennen (raspi.sources) -> sources.list-Ueberschreibung und qemu-guest-agent auf Pi ueberspringen, damit Pi-Kernel/Firmware-Repos intakt bleiben Erster Bare-Metal-ARM-Host der Flotte. base+docker+borg+hawser+sysctl erfolgreich ausgerollt, Docker 29.6.0 arm64 + Hawser aktiv, raspi-Repos unberuehrt. Co-Authored-By: Claude Opus 4.8 --- pfannkuchen.ini | 7 +++++++ roles/base/tasks/main.yml | 18 +++++++++++++++--- roles/docker/tasks/main.yml | 8 +++++++- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/pfannkuchen.ini b/pfannkuchen.ini index 5510bcd..67a065d 100644 --- a/pfannkuchen.ini +++ b/pfannkuchen.ini @@ -51,6 +51,10 @@ wolfstack-vm ansible_host=10.1.1.110 [communication] matrix ansible_host=10.4.1.110 +[ai] +# Homelab AI-Orchestrator (Pi5 Bare Metal, arm64, Cloud-LLM Tool-Layer vor dem Butler-Dienst) +butler ansible_host=10.5.85.2 + [hetzner] pfannkuchen ansible_host=159.69.245.190 ansible_user=root ansible_port=2505 @@ -89,6 +93,7 @@ infrastructure hetzner proxmox vps +ai [backup:children] media @@ -99,6 +104,7 @@ communication proxmox hetzner infrastructure +ai # Credentials liegen in group_vars/ (nicht im INI, da kein Jinja2-Support) @@ -109,5 +115,6 @@ docker auto communication hetzner +ai diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml index f593a64..303b12a 100644 --- a/roles/base/tasks/main.yml +++ b/roles/base/tasks/main.yml @@ -1,4 +1,13 @@ --- +- name: Raspberry Pi OS erkennen (raspi-Repo vorhanden?) + stat: + path: /etc/apt/sources.list.d/raspi.sources + register: raspi_repo + +- name: Fakt is_raspberry setzen + set_fact: + is_raspberry: "{{ raspi_repo.stat.exists }}" + - name: Hostname setzen hostname: name: "{{ inventory_hostname }}" @@ -55,7 +64,7 @@ group: root mode: "0600" -- name: Standard Debian Trixie Repositories setzen +- name: Standard Debian Trixie Repositories setzen (nicht auf Raspberry Pi OS) copy: dest: /etc/apt/sources.list content: | @@ -71,6 +80,7 @@ group: root mode: '0644' register: repo_status + when: not is_raspberry - name: Apt Cache aktualisieren (falls Repos geƤndert wurden) apt: @@ -137,15 +147,17 @@ apt: autoremove: yes -- name: QEMU Guest Agent installieren +- name: QEMU Guest Agent installieren (nur VMs, nicht Raspberry Pi) apt: name: qemu-guest-agent state: present ignore_errors: yes + when: not is_raspberry -- name: QEMU Guest Agent aktivieren +- name: QEMU Guest Agent aktivieren (nur VMs, nicht Raspberry Pi) service: name: qemu-guest-agent state: started enabled: yes ignore_errors: yes + when: not is_raspberry diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index d5e3a04..bab3c80 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -11,10 +11,16 @@ dest: /etc/apt/keyrings/docker.asc mode: '0644' +- name: dpkg-Architektur ermitteln (amd64/arm64) + command: dpkg --print-architecture + register: dpkg_arch + changed_when: false + check_mode: false + - name: Docker Repository Datei erstellen copy: dest: /etc/apt/sources.list.d/docker.list - content: "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable" + content: "deb [arch={{ dpkg_arch.stdout }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable" mode: '0644' register: docker_repo