platform-docs/archive/architecture-v2.md

264 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```text
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:
```text
profiles/
fedora-workstation/
profile.json
mint-desktop/
profile.json
```
---
# Backend-Konzept
Jede Distribution besitzt ein eigenes Backend.
Beispiel:
```text
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.