platform-docs/archive/architecture-v2.md

4.2 KiB
Raw Permalink Blame History

Tuxflotte Architektur v2

Vision

Tuxflotte ist eine distributionsunabhängige Provisionierungsplattform für Linux-Systeme.

Tuxflotte installiert keine Betriebssysteme selbst, sondern orchestriert den Installationsprozess, indem die nativen Installer der jeweiligen Distribution genutzt werden.

Dadurch bleibt Tuxflotte unabhängig von distributionsspezifischen Installationsdetails und profitiert von den offiziellen Installationsmechanismen.


Architekturprinzipien

1. Klare Verantwortlichkeiten

Provisioning-ISO

Verantwortlich für:

  • Hardware erkennen
  • Netzwerk initialisieren
  • Provisioning-Server kontaktieren
  • Profile laden
  • Zielsystem auswählen
  • Installationsparameter erzeugen
  • nativen Installer starten

Nicht verantwortlich für:

  • Partitionierung
  • Dateisysteme
  • Paketinstallation
  • Bootloader-Konfiguration

Diese Aufgaben übernimmt der Installer der jeweiligen Distribution.


Distribution-Installer

Beispiele:

  • Fedora → Anaconda (Kickstart)
  • Linux Mint → abhängig von der verwendeten Installer-Technologie
  • Debian → Debian Installer (Preseed)
  • Ubuntu → Subiquity (Autoinstall)

Verantwortlich für:

  • Partitionierung
  • Dateisysteme
  • Betriebssysteminstallation
  • Bootloader
  • Benutzeranlage
  • Erstkonfiguration des Systems

Provisioning-Agent

Nach dem ersten Systemstart übernimmt der Agent:

  • Registrierung am Provisioning-Server
  • Inventarisierung
  • Nachinstallation
  • Konfigurationsmanagement
  • Softwareverteilung
  • Statusmeldungen

Provisioning-Server

Der Server verwaltet:

  • Profile
  • Geräte
  • Installationsvorlagen
  • Richtlinien
  • Inventar
  • Provisioning-Aufträge

Komponenten

                Provisioning Server
                        │
                        ▼
              Provisioning-Profile
                        │
                        ▼
                Provisioning-ISO
                        │
                        ▼
             Distribution-Installer
                        │
                        ▼
              Installiertes System
                        │
                        ▼
               Provisioning-Agent
                        │
                        ▼
                Provisioning-Server

Installer-Workflow

Phase 1

Preflight

  • Hardware prüfen
  • RAM
  • CPU
  • Firmware
  • Netzwerk

Phase 2

Inventarisierung

  • Datenträger erkennen
  • Netzwerkkarten
  • Firmware
  • Seriennummern
  • Systeminformationen

Phase 3

Profil

  • Benutzer wählt Profil

oder

  • Profil wird automatisch vom Server geliefert

Phase 4

Backend

Passendes Backend wird geladen.

Beispiele:

  • Fedora
  • Mint
  • Debian
  • Ubuntu

Phase 5

Installationsparameter erzeugen

Beispiele:

  • Kickstart
  • Autoinstall
  • Preseed

Phase 6

Nativen Installer starten

Ab diesem Zeitpunkt übernimmt die Distribution die eigentliche Installation.


Phase 7

Erster Start

Provisioning-Agent startet automatisch.


Profile

Jedes Profil beschreibt:

  • Distribution
  • Version
  • Desktop
  • Softwarepakete
  • Benutzer
  • Netzwerkeinstellungen
  • Provisioning-Richtlinien

Beispiel:

profiles/
    fedora-workstation/
        profile.json

    mint-desktop/
        profile.json

Backend-Konzept

Jede Distribution besitzt ein eigenes Backend.

Beispiel:

profiles/

    fedora-workstation/
        profile.json
        installer.sh
        kickstart.tpl

    mint-desktop/
        profile.json
        installer.sh
        autoinstall.tpl

Der Kern von Tuxflotte kennt keine distributionsspezifischen Details.

Er lädt ausschließlich das gewählte Profil und übergibt die Kontrolle an das passende Backend.

Dadurch kann Tuxflotte jederzeit um weitere Distributionen erweitert werden, ohne den Kern ändern zu müssen.


Ziele

  • distributionsunabhängig
  • modular
  • erweiterbar
  • reproduzierbar
  • automatisierbar
  • servergesteuert
  • Zero-Touch-fähig
  • sowohl interaktiv als auch unbeaufsichtigt nutzbar

Grundsatz

Tuxflotte ist eine Provisionierungsplattform und kein eigener Linux-Installer.

Die Installation erfolgt grundsätzlich mit den offiziellen Installationsmechanismen der jeweiligen Linux-Distribution.