KEY:
Mit diesem Mechanismus ist es möglich, die zu einem ClientSet gehörenden Geräte außerhalb der Konfigurationsdatei festzulegen und zur Laufzeit jederzeit zu ändern.
Gedacht ist dieser Mechanismus für dynamische Umgebungen, in denen sich die über das Netzwerk zu bootenden Clients ändern. Das kann dynamische Umgebungen betreffen, in denen ein Durchlauf an Geräten stattfindet, wie etwa in der Produktion oder beim Refurbishment. Es ist aber auch in statischen Umgebungen einsetzbar, etwa wenn von einer festen Gesamtmenge an Clients zu bestimmten Zeitpunkten immer nur ein bestimmter Teil bedient werden soll, z.B. um Resourcen wie die Netzlast zu schonen oder gleichmäßiger zu verteilen.
Das Grundprinzip bei diesem Mechanismus ist, dass die externe Datei, welche alle (von dem betreffenden ClientSet) zu bedienenden Clients enthält von einer zentralen Instanz (zumindest je ClientSet) erstellt und geändert wird. Für verschiedene ClientSets können dies auch verschiedene Instanzen sein. Das kann ein automatisiertes System (z.B. Produktionssteuerung) ebenso sein wie ein menschlicher Bediener.
Hinweis: Grundsätzlich ist dieser Mechanismus unabhängig von bestimmten Anwendungsfällen implementiert, so dass auch für weitere denkbare Einsatzszenarien verwendet werden kann.
...
In der Konfigurationsdatei wird statt einzelner Systeme eine externe Datei spezifiziert, welche dann die entsprechenden Identifikatoren für die im BootSet enthaltenen Clients enthält. Diese externe Datei kann an beliebiger Stelle abgelegt werden, so dass Sie auch für Nutzer und Systeme zugänglich sein kann, die auf die Konfigurationsdatei von keinen Zugriff haben sollen. Diese externe Datei kann im laufenden Betrieb und manuell oder automatisiert erstellt und geändert werden.
Wichtig: Für unterschiedliche ClientSets müssen unterschiedliche externe Dateien angegeben werden.
Beispiel
Zusätzlich zur Möglichkeit, die Clients in einem ClientSet außerhalb der Konfigurationsdatei zu definieren, kann die Zusammensetzung der Clients damit auch während der Laufzeit dynamisch verändert werden. Dazu wird der Zustand der externen Datei wird vom Programm automatisch überwacht. Sobald die externe Datei geändert wurde, wird diese neu eingelesen und die in der neuen Datei enthaltenen Client-Definitionen ersetzen die bisherigen.
Hinweis: Das bedeutet, dass die externe Datei immer die Identifikatoren für alle aktuell zu bedienenden Clients enthalten muss, nicht nur die neu hinzugekommenen. Clients, die nicht mehr bedient werden sollen, können natürlich entfallen.
In der externen Datei werden die zu berücksichtigten Systeme wie in der Konfigurationsdatei anhand ihrer MAC, IP oder System-ID festgelegt. Die Identifikatoren sind dabei identisch zur Konfigurationsdatei (z.B. ...) und werden zeilenweise, aber ohne weitere Syntax abgelegt.
Beispiel ...
Wird das selbe System in mehreren externen Dateien, also für unterschiedliche ClientSets angegeben, so gibt das Programm eine entsprechenden Fehlermeldung aus. Das angegebene System wird in allen ClientSets ignoriert, erhält also auf Anfrage keine Bootdaten, da nicht eindeutig ist, welches BootSet verwendet werden soll.
Falls die in der Konfigurationsdatei angegebene externe Datei nicht vorhanden oder leer ist, behandelt das Programm dies wie folgt:
Datei fehlt beim Programmstart: Das ClientSet wird dennoch als gültig angesehen und entsprechend ausgewertet. Da durch das Fehlen der externen Datei jedoch keine Clients definiert sind, kann das ClientSet erst dann zur Anwendung kommen, sobald die externe Datei nachträglich mit angelegt wird - und dann auch gültige Client-Identifikatoren enthält.
Datei wird während der Programmausführung entfernt: Wenn die externe Datei während der Programmausführung komplett verschwindet, behält das Programm den letzten gültigen Stand an Client-Definitionen so lange bei, bis die Datei wieder verfügbar ist.
Hinweis: Soll ein ClientSet zu einem bestimmten Zeitpunkt absichtlich keine Clients bedienen, so muss die externe Datei leer gespeichert, aber darf nicht komplett gelöscht werden. Dadurch führen temporäre Störungen, z.B. beim Zugriff auf ein Netzlaufwerk, nicht zu einem ungewollten Stillstand.
Datei enthält keine Identifikatoren: Dieser Fall wird als explizite Anweisung verstanden, derzeit keine Clients in diesem ClientSet zu haben und somit über das betreffende ClientSet dann keine Clients zu bedienen.
Datei enthält fehlerhafte Zeilen: Fehlerhafte Zeilen in der externen Datei, werden mit einer Fehlermedung angezeigt. Die übrigen, fehlerfreien Zeilen werden als neue Clients übernommen und ersetzen die zuvor gültigen Clients (siehe [Dynamische Änderung])