Under Construction
Operation "select": Auswählen von Gruppen-Mitgliedern für Operationen
Soll eine Operation nicht auf allen Mitgliedern einer mac_group Gruppe ausgeführt werden, können Mitglieder vor dem Starten der Operation exkludiert werden. Dazu unterstützt der Typ mac_group die Operation select:
aixnim # lsnim -q select -t mac_group
the following attributes are optional:
-a include=<value>
-a include_all=<value>
-a exclude=<value>
-a exclude_all=<value>
-a verbose=<value>
aixnim #
Über die Attribute include, include_all, exclude und exclude_all können Mitglieder ein- oder ausgeschlossen werden von Operationen.
Bevor eine Operation auf einer mac_group gestartet werden soll, sollte überprüft werden wie der Status der Gruppe bezüglich dem Ausschluß von Mitgliedern aussieht. Dafür gibt es die Option „-g“ (group) beim Kommando lsnim:
aixnim # lsnim -g dev_group
dev_group:
class = groups
type = mac_group
member1 = aix02; ready for a NIM operation; currently running;
member2 = aix05; ready for a NIM operation; currently running;
member6 = aix01; ready for a NIM operation; currently running;
member17 = aix03; ready for a NIM operation; currently running;
aixnim #
Wird einer Gruppe ein Mitglied hinzugefügt, dann ist dieses neue Mitglied standardmäßig für Operationen eingeschlossen (included).
Soll eine Operation auf einer Gruppe ausgeführt werden, kommt es gerade bei größeren Gruppen vor, das einzelne Mitglieder von der Operation ausgeschlossen werden sollen. Dazu wählt man mit Hilfe der Operation „select“ Mitglieder aus, die ausgeschlossen werden sollen, oder aktuell ausgeschlossene Mitglieder, die eingeschlossen werden soll.
Als Beispiel schließen wir das Mitglied aix05 aus:
aixnim # nim -o select -a exclude=aix05 dev_group
aixnim #
Eine Überprüfung mit „lsnim -g“ zeigt das aix05 nun ausgeschlossen ist:
aixnim # lsnim -g dev_group
dev_group:
class = groups
type = mac_group
member1 = aix02; ready for a NIM operation; currently running;
member2 = aix05; ready for a NIM operation; currently running; EXCLUDED
member6 = aix01; ready for a NIM operation; currently running;
member17 = aix03; ready for a NIM operation; currently running;
aixnim #
Wir starten testweise eine „check“ Operation auf der Gruppe dev_group um dies für eine auszuführende Operation zu überprüfen:
aixnim # nim -o check dev_group
+-----------------------------------------------------------------------------+
Performing "check" Operation
+-----------------------------------------------------------------------------+
Performing check operation on machine 1 of 3: aix02 ...
Performing check operation on machine 2 of 3: aix01 ...
Performing check operation on machine 3 of 3: aix03 ...
aixnim #
Hinweis: Wir haben hier bewusst die Operation „check“ ausgewählt, da diese keine weiteren Ausgaben produziert. Der Ausschluß gilt aber natürlich auch für alle anderen Operationen.
Es wurde keine „check“ Operation auf aix05 ausgeführt.
Sollen bei einer größeren Gruppe fast alle Mitglieder ausgeschlossen werden, geht dies häufig am Schnellsten in dem man alle Mitglieder exkludiert und dann die wenigen Mitglieder auf denen die Operation durchgeführt werden soll, wieder inkludiert.
Als Beispiel exkludieren wir alle Mitglieder in dev_group, bis auf aix03:
aixnim # nim -o select -a exclude_all=yes -a include=aix03 dev_group
aixnim #
Hinweis: Die Reihenfolge ist entscheidend! Das Attribut exclude_all muss als erstes Attribut angegeben werden.
Der Wert beim Attribut exclude_all wird anscheinend nicht weiter überprüft. Entscheidend ist nur das das Attribut angegeben wird. Alle Mitglieder bis auf aix03 sind jetzt exkludiert:
aixnim # lsnim -g dev_group
dev_group:
class = groups
type = mac_group
member1 = aix02; ready for a NIM operation; currently running; EXCLUDED
member2 = aix05; ready for a NIM operation; currently running; EXCLUDED
member6 = aix01; ready for a NIM operation; currently running; EXCLUDED
member17 = aix03; ready for a NIM operation; currently running;
aixnim #
Ein kurzer Test mit der „check“ Operation zeigt, dass die Operation tatsächlich nur auf aix03 ausgeführt wird.
aixnim # nim -o check dev_group
+-----------------------------------------------------------------------------+
Performing "check" Operation
+-----------------------------------------------------------------------------+
Performing check operation on machine 1 of 1: aix03 ...
aixnim #
Der Status eines Mitglieds ist persistent und ändert sich nur durch eine weitere „select“ Operation.
Soll die nächste Operation wieder auf allen Mitgliedern ausgeführt werden, kann dies am einfachsten durch Verwenden des Attributs include_all erreicht werden:
aixnim # nim -o select -a include_all= dev_group
aixnim #
Die nächste Operation wird dann wieder auf allen Mitgliedern ausgeführt.