{% extends "admin/layout.html" %} {% block title %}{{ organization.name if organization else organization_id }} — Tuxflotte Admin{% endblock %} {% block admin_content %}
Legt fest, welche Vorlagen-Workspaces die Organisation sieht und zuweisen kann. Ohne Kundengruppe sieht sie nur global freigegebene Vorlagen.
Legt fest, welchen Stand der Rollen die Geräte dieser Organisation beim Check-in ziehen. Testing: Änderungen, die nach den Vorab-Tests freigegeben sind (Standard, Testschulen). Vorab: jede Änderung sofort (nur Tuxflotte: Testlab, Liebherr). „Stabil“ für zahlende Kunden, die selbst über das Einspielen entscheiden, folgt später. Die Umstellung wirkt beim nächsten Check-in der Geräte.
Freigeschaltet können die Kunden-Admins dieser Organisation unter „Workspace“ eigene Workspaces erstellen, bearbeiten, veröffentlichen und unter „Organisation › Struktur“ ihren OEs zuweisen. Gesperrt sehen sie nur, welche Workspaces für sie bereitstehen, und tuxflotte richtet alles ein.
Legt fest, wie Geräte dieser Organisation bei der Installation automatisch benannt werden ("<Präfix>-<Nummer>"). Leerer Präfix = Standard "tuxflotte". Ein bereits bekanntes Gerät behält bei einer Neuinstallation seinen Namen, wenn er zur Konvention passt; sonst bekommt es einen neuen.
Für diese Organisation noch nicht freigeschaltet (Ausrollstufe „Testing“): die Ressourcen werden gespeichert, aber nicht an Geräte verteilt, und die Kunden-Seite ist ausgeblendet.
{% endif %} {% set basis_url = "/admin/kunden/" ~ organization_id ~ "/ressourcen" %} {% set darf_bearbeiten = true %} {% include "_ressourcen.html" %}{{ request.query_params.get("archiv_fehler") }}
{% endif %}Die Organisation verschwindet aus allen Listen. Ihre Kunden-Konten können sich nicht mehr anmelden, Installationsmedien und Aktivierungscodes werden ungültig, laufende Einladungen zur Personalisierung zurückgezogen. Die Daten bleiben für den Verlauf erhalten. Geht nur, wenn alle Geräte gelöscht sind; die lassen sich danach in einer anderen Organisation neu installieren.
Richtet auf Geräten, die mit einem danach erstellten Installationsmedium installiert werden, einen root-Zugang ein (per SSH, ohne „Konsolenwechsel sperren“ auch an der Konsole). Nur für die Fehlersuche gedacht. Das Passwort ist ausschließlich hier im Admin-Bereich sichtbar, auf das Installationsmedium gelangt nur sein Hash. Ausschalten wirkt nur auf neu erstellte Installationsmedien.
Bereits installierte Geräte: Dort sperrt das Härtungs-Merkmal „Diagnosezugang sperren“ (Workspace, OE oder Gruppe) den Zugang – root-Passwort gesperrt, SSH aus. Abwählen stellt ihn wieder her. Hinweis: Das Merkmal „Konsolenwechsel sperren“ nimmt die Anmeldung an der Textkonsole weg; der Diagnosezugang geht dann nur per SSH.
{% if diagnosezugang.aktiv %}Status: aktiv
Benutzer: root
Passwort: {{ diagnosezugang.passwort or "— (nicht lesbar)" }}
Ein neues Passwort gilt nur für danach erstellte Installationsmedien – vorhandene Medien und Geräte behalten das alte.
{% else %}Status: aus
{% endif %}Geräte ohne Bereitstellungsvorlagen-Zuweisung. Bestätigung setzt eine Vorlage und schaltet die Installation frei (deckt den serverseitigen Teil aus ADR-0008 ab, nicht das Installer-seitige Warten im Auto-Modus).
| {{ device.hostname or device.device_fingerprint }} | {{ device.created_at | datum }} |
| Erstellt | Vorlage | Geräte | Läuft ab | Status | |
|---|---|---|---|---|---|
| {{ es.created_at | datum }} | {{ es.bereitstellungsvorlage_label }} | {{ es.devices_used }} / {{ es.max_devices }} | {{ es.expires_at | datum }} | {{ es.status }} | {% if not es.revoked_at %} {% endif %} |
Je erstelltem Installationsmedium eine Enrollment Session, neueste zuerst. Ein neues Medium macht ältere nicht ungültig (Entscheidung 22.10.2026); „Widerrufen“ sperrt ein Medium für weitere Installationen.
{% if enrollment_sessions %} {{ session_tabelle(enrollment_sessions) }} {% else %}Noch keine Enrollment Sessions.
{% endif %}Installationen und Agent-Läufe der Geräte dieser Organisation, neueste zuerst (die letzten {{ aktivitaeten_abruf }} Ereignisse). Ein Agent-Lauf prüft alle Merkmale eines Geräts. Läufe ohne Fehler stehen je Gerät und Tag in einer Zeile, Fehler und Installationen einzeln und markiert.
{% if aktivitaeten_tage %}| Zeit | Gerät | Ereignis |
|---|---|---|
| {{ (a.zeit | datum)[-5:] }} | {{ a.hostname }} | {% if a.problem %}{{ a.text }}{% else %}{{ a.text }}{% endif %}{% if a.laeufe > 1 %} ({{ a.laeufe }} Läufe an diesem Tag, hier der letzte){% endif %} |
Keine Ereignisse für diesen Filter.
{% else %}Noch keine Aktivitäten protokolliert.
{% endif %}{{ vorlage_fehler }}
{% endif %} {% if bearbeiten %} {# GUI-Runde 09.10.2026: Bearbeiten einer bestehenden Vorlage #}← alle Bereitstellungsvorlagen
Wird verwendet von {{ bearbeiten.geraete_anzahl }} Gerät(en) und {{ bearbeiten.medien_anzahl }} Installationsmedium/-medien. Änderungen gelten für künftige Installationen und für den Workspace dieser Geräte, sofern ihre OE keinen eigenen Workspace hat.
{% endif %} {% set v = bearbeiten %} {% set aktion = "/admin/kunden/" ~ organization_id ~ "/bereitstellungsvorlagen/" ~ bearbeiten.id %} {% set knopf = "Änderungen speichern" %} {% include "admin/_bereitstellungsvorlage_formular.html" %}Nicht möglich, solange Geräte oder Installationsmedien die Vorlage verwenden.
{% else %}Bereitstellungsvorlage oder Workspace? Die Bereitstellungsvorlage regelt die Installation: Distro, Partitionierung, Verschlüsselung und mit welchem Workspace das Gerät startet. Sie wirkt nur einmal, beim Installieren. Der Workspace regelt den Inhalt: Programme, Einstellungen, Merkmale. Ihn hält der Agent auf dem Gerät dauerhaft aktuell; hat die OE des Geräts einen eigenen Workspace (gleiche Distro), gilt dieser. Zum Bearbeiten oder Löschen auf die Bezeichnung klicken.
{% if bereitstellungsvorlagen %}| Bezeichnung | Workspace | Distro | Partitionierung | Standard | Geräte | Medien |
|---|---|---|---|---|---|---|
| {{ v.label }} | {{ v.workspace.name }} |
{{ v.backend.name }} {{ v.backend.version }}
{% if ws_distro and ws_distro.id != v.backend.id %} passt nicht zum Workspace ({{ ws_distro.name }}){% endif %} |
{{ v.partitioning.root_filesystem }}
{% if v.partitioning.scheme == "custom" and v.partitioning.extra_partitions %}
+ {% for p in v.partitioning.extra_partitions %}{{ p.mountpoint }} {{ p.percent }} %{{ ", " if not loop.last else "" }}{% endfor %}
{% endif %}
{% if v.disk_encryption %} verschlüsselt{% endif %} {% if v.secure_boot_required %} Secure Boot{% endif %} |
{{ "ja" if v.is_default else "–" }} | {{ v.geraete_anzahl }} | {{ v.medien_anzahl }} |
Noch keine Bereitstellungsvorlagen.
{% endif %}Für Installationen ohne persönliches Installationsmedium (allgemeines Boot-Medium, Lokal-Test): Der Code wird im Installer eingetippt und ordnet das Gerät dieser Organisation zu; die Bereitstellungsvorlage wählt man danach im Installer aus (vorausgewählt ist die Standard-Vorlage). Medien, die der Kunde unter „Installationsmedium“ erstellt, brauchen keinen Code: Sie tragen ihre Vorlage schon in sich. Deaktivierte oder abgelaufene Codes werden abgelehnt; bereits installierte Geräte bleiben davon unberührt.
{% if activation_codes %}| Code | Bezeichnung | Status | Gültig bis | Verwendet | Angelegt | Aktionen |
|---|---|---|---|---|---|---|
{{ ac.code }} |
{{ ac.bezeichnung or "–" }} | {% if not ac.active %}deaktiviert {% elif ac.abgelaufen %}abgelaufen {% else %}aktiv{% endif %} | {{ ac.gueltig_bis | datum(False) if ac.gueltig_bis else "unbegrenzt" }} | {% if ac.verwendet_anzahl %}{{ ac.verwendet_anzahl }}× · {{ ac.zuletzt_verwendet | datum(False) }}{% else %}noch nie{% endif %} | {{ ac.created_at | datum(False) }} |
Löschen |
Noch keine Aktivierungscodes.
{% endif %}Plattform-Admin-Konten (organisationsübergreifend) werden getrennt unter Admin-Accounts verwaltet, tauchen hier absichtlich nicht auf.
| Org-Admin | Angelegt | ||
|---|---|---|---|
| {{ b.email }} | {{ "ja" if b.ist_organisationsadmin else "nein" }} | {{ b.created_at | datum(False) }} |
Ändern |
{{ request.query_params.get("fehler") }}
{% endif %} {% if request.query_params.get("hinweis") %}{{ request.query_params.get("hinweis") }}
{% endif %} {% endif %}Ein Workspace an einer OE gilt für alle Geräte darin und in ihren Unter-OEs (außer eine Unter-OE hat einen eigenen). Geräte müssen zur Distro des Workspace passen – sonst wird das Speichern mit Begründung abgelehnt. Gruppen ergänzen nur.
{% macro oe_knoten(oe, oes, tiefe) %}{{ oe_hinweis }}
{% endif %}{{ oe_fehler }}
{% endif %}Querschnitts-Gruppen (z.B. Lehrer/Schulleitung) — ein Gerät kann in mehreren gleichzeitig sein.
{% if not gruppen %}Keine Gruppen angelegt.
{% else %}| Name | |
|---|---|
| {{ gruppe.name }} | Verwalten |