Project

General

Profile

Actions

Feature #1190

open

Erstregistrierung

Added by Christian Hofmaier almost 6 years ago. Updated almost 5 years ago.

Status:
Feedback
Priority:
Normal
Start date:
07/24/2018
Due date:
06/28/2019 (over 4 years late)
% Done:

100%

Estimated time:

Description

  • Clients eine Konfiguration zuweisen (Webinterface, direkt am Client per iPXE Erweiterung)
  • Mehreren Clients auf einmal eine Konfiguration zuweisen
  • Konfiguration des Erstregistrierung Skripts z.b. Weiterleitung auf eigene Server
Actions #1

Updated by Jannik Schönartz almost 6 years ago

  • Due date changed from 07/17/2018 to 08/07/2018
  • Start date changed from 07/03/2018 to 07/24/2018
Actions #2

Updated by Dirk von Suchodoletz almost 6 years ago

  • Assignee set to Christian Hofmaier

Vorschlag für Liste der Datenfelder, die bei der Registrierung von Clients ausgefüllt werden sollen.

Was davon automatisch, was durch Admin bei der Erstregistrierung einzugeben?

Nutzung von Kommentarfeldern bzw. anderen geeigneten Feldern, um klarzumachen, wo die Daten herkommen.

Wie erfolgt eine geeignete Zuordnung im I-doIT, so dass Administratoren später dort Änderungen vornehmen können?

Actions #3

Updated by Dirk von Suchodoletz almost 6 years ago

Am besten im Wiki sammeln, welche Informationen zu Clients gesammelt werden sollten: Basisdaten, UUID, MAC, später IP, Rechnerausstattung (CPU, RAM, Platte, ...), offizielle Maschinenbezeichnung, Lizenzen, evtl. irgendwelche Keys für TPM?, Zertifikate, Seriennummern, ...

  • Hardware (automatisch auslesbar)
    • Typ der Maschine, Bezeichnung (potenziell: Manufacturer, Model)
    • CPU: Wie angeben, wie Multi-CPU (müsste I-doIT auch schon was haben)
    • RAM
    • Festplatte/SSD (wie mehrere?)
    • Typ Netzwerkkarte, MAC-Adresse, Typ Netzwerkkabel (SFP, TP, ...)
    • eigene Seriennummer / UUID (potenziell: Serial Number / ProductID)
  • Inventarisierung:
    • Service-Tags Hersteller (potenziell: Service Tag)
    • eigene Inventarisierungsaufkleber
    • Zuordnung zu einem Raum (Struktur im I-doIT)
    • Eigentümer (UserID, Kostenstelle, whatever)
    • Beschaffungsdatum
  • Software/Zertifikate:
    • Was ist drauf ...
    • Lizenzen
    • TPM / SecureBoot (Zertifikate, Schlüssel)
  • Netzwerk (teilweise automatisierbar):
    • LAN / WLAN
    • IPv4, v6 (Adressen)
    • FQDN
    • Firewall, Sicherheitslevel
    • Netzwerksegment (Sicherheitslevel, Segmentierung)
    • Anschluss (-hierarchie, Dose, Switch, Router, ...)
  • Anordnung / Funktion
    • Rolle als PVS, PrintRelease, DigitalSignage, ...
    • Anordnung im Raum für PVS

IP-Telefone und Spezialgeräte will man vermutlich nicht in dieser Kategorie mit abfrühstücken? (Die Kategorie "Phone" sieht erstmal nicht so sehr nach SIP aus)

Vermutlich will man "Server" als eigene Kategorie fahren (gibts so auch separat im I-doIT), nur gibts sicherlich ne Menge Überschneidungen bei der Erstregistrierung (vgl. Felder oben).

Actions #4

Updated by Dirk von Suchodoletz almost 6 years ago

Entsprechende Anfrage ging an Kollegen im Haus raus ...

Actions #5

Updated by Dirk von Suchodoletz almost 6 years ago

Soll an folgender Stelle konsolidiert werden: https://wiki.uni-freiburg.de/rz/doku.php?id=i-doit

Da gibts jetzt auch ein erstes Beispiel mit Mapping auf I-doIT-Felder.

Actions #6

Updated by Jannik Schönartz almost 6 years ago

  • Assignee changed from Christian Hofmaier to Jannik Schönartz
Actions #7

Updated by Jannik Schönartz over 5 years ago

  • % Done changed from 0 to 30

Detaillierter Workflow: Erstregistrierung

Erster Anfang der Erstregistrierung wurde mit 1667e801 & 243384ed commited
  • Registration.ipxe mit der Vorabauswahl kann geladen werden
  • Manuelles auswählen der Gruppe im iPXE skript
    • Dynamisches Laden der Child-groups
    • Zurück zur Gesamtliste
    • Client in aktuelle Gruppe Speichern -> Client landet in der DB mit der Gruppe als Parent
  • Einarbeitung in die DHCP WAPI
  • Zur Kommunikation wird das Infoblox module benutzt
  • Erste test-calls
    • Authentifizierung
    • Client mit fester IP hinzufügen
    • Informationen eines Subnetzes abrufen
    • Informationen zu einem Host abrufen
Actions #8

Updated by Dirk von Suchodoletz over 5 years ago

  • Due date changed from 08/07/2018 to 08/31/2018
Rolle von automatischer bzw. manueller Registrierung:
  • Automatische Registrierung mit iPXE, der Rest eher mit einer vollständigen Linux-Umgebung, die um bestimmte Module ergänzt werden kann (TPM, Zertifikate, ...)
  • Wie geht man mit bereits registrierten Systemen um (Situation Erstaktivierung BAS und bestehende Umgebung)
  • Wie geht man damit um, wenn eine Maschine von einem Netz/Raum in ein anderes Netz/anderen Raum verschoben wird
  • Wie sorgt man dafür, dass die verschiedenen Daten möglichst effizient in die Datenbank kommen (Hardware, TPM, UUID, Seriennummern, ...) Es macht ja auch Sinn, dass Admins/Nutzer Tags, die nur auf der Maschine stehen, entsprechend eintragen können.
  • Was für ein System nimmt man sinnvoll für die (Zweit-)Registrierung: bwLehrpool-Kiosk, Standard-Live-CD einer Distro mit eigenen Erweiterungen, ...
Actions #9

Updated by Dirk von Suchodoletz over 5 years ago

  • Priority changed from Normal to High
Der genannte Punkt kann hier nur nochmal reiteriert werden: Es wird eine Aufwands- und Möglichkeitsabschätzung auf mehreren Ebenen erforderlich:
  • Was ist für das Einfügen eigener PXE-Scritps notwendig:
    • eigener Server (was dann für Dienste), welche Auswirkung, wenn Dienst nicht da
    • Alternativ Platz auf dem BAS
    • Wenn BAS, wie werden die verschiedenen Nutzer unterschieden (vgl. Rechte/Rollen), wie wird verhindert, dass auf dem Weg der BAS nicht unbrauchbar wird (weil Nutzer einfach zentrale Dateien löschen oder mit falschen Rechten versehen könnte)
  • Welcher Aufwand fällt für die Boot-Zeit, Nutzung in jeder Option an
  • Wie gut klappt die Separierung von verschiedenen Aufgaben (Abhängigkeit von Administratoren etc.)

Diese Abschätzung sollte im Wiki erfolgen und hier entsprechend verlinkt werden.

Actions #10

Updated by Jannik Schönartz over 5 years ago

  • % Done changed from 30 to 60

Aktueller Stand (353761b0)

  • Die Datenbank musste etwas erweitert werden, um die Bash und Ipxe Skripte für die Erstregistrierung zu speichern:
    registrationhooks
    type kann entweder BASH oder IPXE sein
    id sortvalue type script
  • Registration hooks können auch speziellen Gruppen zugeordnet sein.
    registrationhook_x_group
    registrationhookId groupId
  • In der Client Tabelle musste eine spalte registrationState hinzugefügt werden.
    In der die ID des nächsten auszuführenden Skripts steht.
    clients
    id name description ip mac uuid configId registrationState
  • In der API musste eine GET-methode /api/registration/:uuid/nexthook hinzugefügt werden
    Diese liefert dem Minilinux (#1219) das nächste Skript, falls es vom type BASH ist.
  • Zudem musste eine POST-methode /api/registration/:uuid/state erstellt werden.
    Diese soll von den Skripts getriggert werden, um dem BAS zu signalisieren, dass das Skript ausgeführt wurde.
Aktuell in Bearbeitung
  • Die Methode zum registrationState setzten, muss schauen welches Skript als nächstes ausgeführt werden soll und den registrationState entsprechend updaten.
    (sortvalue, group dependency, ...)
Actions #11

Updated by Jannik Schönartz over 5 years ago

  • Status changed from New to In Progress
  • % Done changed from 60 to 70
Aktueller Stand (d94b8f10)
  • Methode zum registrationState setzten wurde implementiert.
    • Da ein Hook Gruppen zugewiesen wird und diese mittels Vererbung an die Clients weitergegeben wird mussten alle Gruppen und deren Parents von einem Client rekursiv geholt werden, um die Gruppen Abhängigkeiten betrachten zu können.
    • Dann musste das Skript mit dem niedrigsten sortvalue genommen werden.
Actions #12

Updated by Udo Daniel Walter over 5 years ago

  • % Done changed from 70 to 80
Der Ablauf der Erstregistrierung klappt soweit.
  • Zuerst die Aufnahme des Clients in die Datenbank
  • Dann die Registration Hooks (Minilinux bei BASH Hooks #1219 und einfaches iPXE bei iPXE Hooks)

Der grafische Konfigurator für die Registration Hooks (#1218) sollte auch demnächst fertig sein.

Was noch fehlt:
  • Auswahl der IP Adresse?
  • Von der Aufnahme zu den Hooks ohne Reboot
Actions #13

Updated by Jannik Schönartz over 5 years ago

Mit 3cb40c9c sollten die Clients schonmal halbwegs mit Daten im iDoIT landen. (#1185)

Meine aktuelle Priorität ist es, die Clients inkl. HW Daten und TPM Dateien automatisch ins IdoIT zu befördern.
Es fehlt auch nicht mehr so viel.
  • HW Daten müssen noch vervollständigt werden: a) idoit backend und b) bash script müssen dafür angepasst werden.
  • TPM/SSL key muss mittels curl zum BAS und von dort ins idoit geladen werden.
Actions #14

Updated by Dirk von Suchodoletz over 5 years ago

Klären des Umgangs mit Aktualisierungen (von Maschinen im I-doIT):
  • Wie könnte eine Historie eines Clients abgebildet werden?
  • Gibt es Logs im I-doIT aus denen sich das einfach rekonstruieren lässt?
  • Eigenes Feld anlegen, um alte Werte log-ähnlich dort zu hinterlegen? (optimalerweise irgendwo weniger prominent, dass es nicht beim einfachen Ansehen eines Clients stört)
Actions #15

Updated by Dirk von Suchodoletz over 5 years ago

Das Ganze sollte auf verschiedenen Maschinen getestet werden (Testbench, Laptops der Kollegen, ...) incl. Laptops etc. Einige Felder können sich unter Umständen erheblich unterscheiden, so dass u.U. keine sinnvollen Werte ausgelesen werden, weil die Formatierung leicht anders ist.

Actions #16

Updated by Dirk von Suchodoletz about 5 years ago

  • Status changed from In Progress to Feedback

Hier nochmal die Erinnerung an die erforderlichen Tests (insbesondere auch mit externen Usern) ...

Actions #17

Updated by Dirk von Suchodoletz about 5 years ago

Für die Diskussion der Datenfelder mal die bestehende Client-Inventarisierung im I-doIT angesehen:

  • Über den Namen des Clients müsste man vermutlich nochmal reden. Für das RZ steht zumindest nicht der richtige Name drin (oder er ist nicht richtig hinterlegt). Derzeit steht da noch lph101 o.ä. statt irgendwas mit ZERZ****
  • Was sollte da drinstehen, denn das ist ja die Info, die in der Tabelle angezeigt wird (Liste im I-doIT)?
  • Bei den Standarddaten:
    • Eigentümer/Ansprechpartner?
    • Netzwerkinformation: Irgendwie würde ich die IP-Adresse ja eher im Bereich Netzwerk als an anderer Stelle der Client-Information vermuten
    • Beschaffungsdatum?
    • Wie ist das mit Informationen zum Bildschirm, spezielle Grafikkarte o.ä.

Die Liste der Informationen findet sich hier: https://wiki.uni-freiburg.de/rz/doku.php?id=i-doit#client (bitte gegenchecken)

Bestimmte Informationen (Eigentümer, Beschaffungsdatum, Seriennummer des Anbieters, Monitor, ...) ist ja bei allen Maschinen gleich. Wie könnte man das sinnvoll umsetzen? Template-File; API-Call, wo man für eine bestimmte Selektion von Maschinen das Bulk-mäßig hinzufügt ...

Actions #18

Updated by Jannik Schönartz about 5 years ago

  • % Done changed from 80 to 90

Die Client Namen im RZ sind aktuell noch falsch. Wird aber bei Gelegenheit behoben.
Wäre gut, wenn das "irgendwas mit ZERZ****" noch etwas genauer ausgeführt werden könnte. (#1209)

DHCP backend wurde jetzt mit einbezogen.
Dazu wurde ein Semi-Automatik Modus hinzugefügt, der bei Clients mit leased IPs die nächsten 20 freien IPs des Subnetzes zur Auswahl gibt und danach dann die Namenseingabe. Der Client Name wird dann im DHCP auch direkt als Hostname gesetzt und der Client bekommt die Ausgewählte IP als feste Adresse. Wird eine IP gewählt die dann schon von einem anderen Client belegt wurde bekommt man eine Fehlermeldung und eine aktuelle liste der freien IPs.
Das Löschen des DHCP Eintrags, wenn ein Client im BAS gelöscht wird, kommt demnächst.

Bei den Informationen wie Monitore muss halt erstmal eine geeignete Abbildung im iDoIT überlegt werden.
Bzgl. iDoIT Infos gibts updates hier (#1185)

Actions #19

Updated by Jannik Schönartz almost 5 years ago

  • Status changed from Feedback to Closed
  • % Done changed from 90 to 100
Actions #20

Updated by Dirk von Suchodoletz almost 5 years ago

  • Due date changed from 08/31/2018 to 06/28/2019
  • Status changed from Closed to Feedback
  • Assignee changed from Jannik Schönartz to Manuel Messner
  • Priority changed from High to Normal

Nun muss das Ganze auch für die Serverseite (hat anderen Fokus, braucht zusätzliche Information z.B. zu verschiedenen Netzwerkkarten, Netzen, ...) funktionieren.

Actions

Also available in: Atom PDF