DGI-2

dgridmap

dgridmap  –  Erzeugt grid-mapfile und UUDB für eine D-Grid Ressource

dgridmap [Option] ...

Dieses Script erzeugt die zum Betrieb der Grid-Middleware erforderlichen Dateien für das Mapping von DNs der Grid-User-Zertifikate zu Unix Accounts.

Für Globus wird ein grid-mapfile erzeugt, für UNICORE eine Datei, aus der die UUDB erzeugt werden kann.

Das Script wird auf der Ressource, für die die Mapping-Dateien erzeugt werden sollen, ausgeführt. Wenn Ihre Site mehrere Ressourcen anbietet, sollte das Script auf jeder Ihrer Ressourcen ausgeführt werden und dort die Mapping Files erzeugen.

Das Script kontaktiert die Datenbank des zentralen D-Grid-Ressourcen- und -User-Managements, die die Informationen über die DNs der Grid-User-Zertifikate der Nutzer, die für diese Ressource registriert sind und zugehörige Namen für Unix Accounts liefert. Das Script schreibt diese Informationen in das richtige Format für die Globus oder UNICORE. Für UNICORE werden außerdem die DNs der Grid-Server-Zertifikate der anderen UNICORE Installationen (NJS) im D-Grid geliefert, damit ein Datentransfer zwischen diesen Ressourcen möglich ist.

Folgende Optionen sind möglich:

-cert-path cert-path

Um die Informationen von der Datenbank des D-Grid Ressourcen- und User-Managements für eine Ressource zu erhalten, muss man sich mit dem Grid-Server-Zertifikat dieser Ressource ausweisen. Durch den DN-Eintag des Grid-Server-Zertifikates wird die Ressource, für die das Mapping erzeugt wird, implizit festgelegt.

Wenn eine funktionierende Globus-Installation auf der Ressource vorliegt, sind alle benötigten Dateien vorhanden unter dem Standard-Pfad /etc/grid-security. Dann wird die Option nicht benötigt.

cert-path ist der Pfad, unter dem das Grid-Server-Zertifikat, der dazugehörige private Schlüssel der Ressource (bzw. einer der Ressourcen Ihrer Site) sowie das Root-Zertifikat der ausstellenden CA zu finden sind.

Default ist /etc/grid-security.

Die Zertifikate müssen in der gleichen Form vorliegen wie bei Globus: Das Grid-Server-Zertifikat ist cert-path/hostcert.pem, der private Schlüssel des Grid-Server-Zertifikates ist cert-path/hostkey.pem, das Root Zertifikat der ausstellenden CA ist cert-path/certificates/hash.0, die URL der Certificate Revocation List ist cert-path/certificates/hash.crl_url, die Signing Policy ist cert-path/certificates/hash.signing_policy. hash ist dabei der hash Wert des Root Zertifikates. Wenn der hash Wert des Root Zertifikates root.pem unbekannt ist, kann man ihn mit openssl x509 -hash -noout -in root.pem herausfinden.

 

-output-g file_g

file_g ist der Name des zu erzeugenden grid-mapfiles. In diesem Format werden der DN des Grid-Nutzer-Zertifikates (in doppelten Anführungszeichen) und der Unix-Account zu diesem DN ausgegeben. Bei der Mitgliedschaft in mehreren VOs mit einem DN werden die entsprechenden Unix-Accounts durch Kommata getrennt ausgegeben.

 

-output-g-attr file_g_attr

file_g_attr ist der Name des zu erzeugenden grid-mapfiles. In diesem Format werden Einträge für das Mapping von Attributen auf Unix-Accounts erzeugt. Diese Einträge haben die Form:
                "<gruppe>/Role=<rolle>/Capability=NULL" <unix-account>
Daran schließt sich der Output für das Mapping von DNs auf Unix-Accounts wie bei der Option -output-g an.

-output-g-old file_g_old

file_g_old ist der Name des zu erzeugenden grid-mapfiles. In diesem Format werden der DN des Grid-Nutzer-Zertifikates (in doppelten Anführungszeichen) und der Unix-Account zu diesem DN ausgegeben. Bei der Mitgliedschaft in mehreren VOs mit einem DN werden in diesem älteren Globus-Format mehrere Zeilen ausgegeben.

 

-output-xu file_xu

file_xu ist der Name der zu erzeugenden Datei, aus der die XUUDB erzeugt werden kann. In diesem Format werden eine fortlaufende Nummer, der Kürzel <site-ressource>, der Unix-Account, das Schlüsselwort "user", der VO-Name und der DN des Grid-Nutzer-Zertifikates ausgegeben. Bei der Mitgliedschaft in mehreren VOs mit einem DN werden die entsprechenden Unix-Accounts durch Doppelpunkte getrennt ausgegeben sowie die entsprechenden VO-Namen durch Doppelpunkte getrennt ausgegeben.

 

-output-xu-all file_xu_all

file_xu_all ist der Name der zu erzeugenden Datei, aus der die XUUDB erzeugt werden kann. Im Gegensatz zur Option -output-xu werden hier Einträge für alle UNICORE-Ressourcen der Site erzeugt. In diesem Format werden eine fortlaufende Nummer, der Kürzel <site>, der Unix-Account, das Schlüsselwort "user", der VO-Name und der DN des Grid-Nutzer-Zertifikates ausgegeben. Bei der Mitgliedschaft in mehreren VOs mit einem DN werden die entsprechenden Unix-Accounts durch Doppelpunkte getrennt ausgegeben sowie die entsprechenden VO-Namen durch Doppelpunkte getrennt ausgegeben.

 

-output-xu-attr file_xu_attr

file_xu_attr ist der Name der zu erzeugenden Datei. In diesem Format werden Einträge für das Mapping von Attributen auf Unix-Accounts erzeugt. Diese Einträge haben die Form:
                "<gruppe>/Role=<rolle>/Capability=NULL" <unix-account>

 

-output-o file_o

file_o ist der Name der zu erzeugenden Mapping-Files für OGSA-DAI (bestehend aus VO-Namen und DN-Einträgen).

 

-output-a file_a

file_a ist der Name eines zu erzeugenden Files mit weiteren Informationen für Administratoren (VO, VO-Kürzel, Gruppe, ID, Member-Status, Statusänderungs-Datum, Vorname, Nachname, Institut, Straße, PLZ, Stadt, Land, Telefon, Nationalität, E-Mail, DN, CA-DN, Zertifikats-Status, DN des Repräsentanten, CA-DN des Repräsentanten), wobei die einzelnen Felder jeweils mit einem # getrennt sind.

 

-pre pp

pp ist ein Prefix mit maximal 2 Zeichen, das Sie für die erzeugten Unix Account Namen verwenden können. Default ist dg. Falls kein Prefix erwünscht ist, kann dies mit -pre '' erreicht werden.

Weiteres

Durch das Grid-Server-Zertifikat unter /etc/grid-security oder dem durch -cert-path angegebenen Pfad wird implizit die Ressource festgelegt. Insbesondere wird bei Sites, die mehrere Ressourcen betreiben, das Mapping nur für diese Ressource erzeugt. Dabei werden Einträge für Nutzer aller VOs, die auf dieser Ressource rechnen dürfen, erzeugt.

Wenn keine der Optionen -output-g, -output-g-attr, -output-g-old, -output-xu, -output-xu-all, -output-xu-attr, -output-o oder -output-a verwendet wird, werden alle 8 Files mit den Default-Namen gridmap.<site>.<resource>, gridmap.attr.<site>.<resource>, gridmap.old.<site>.<resource>, xuudb.<site>.<resource>, xuudb.all.<site>, ogsa.<site>.<resource> und admin.<site>.<resource> im Arbeits-Directory angelegt. <site> wird dabei durch den Kürzel für die Site ersetzt, <resource> durch den Kürzel für die Ressource. Wenn eine der Optionen angegeben wird, wird nur das dieser Option entsprechende File angelegt. Es können auch mehrere dieser Optionen angegeben werden. Dann werden die entsprechenden Files angelegt.

Die erzeugten Namen der Unix Accounts haben das Format ppvvnnnn, wobei pp das Prefix ist, vv das Kürzel für die VO und nnnn eine mit Nullen aufgefüllte 4-stellige Ziffer, die vom D-Grid Ressourcen- und User-Management vergeben wird. Für jede VO werden die Accounts separat nummeriert.

 

Einrichten von Unix Accounts auf der Ressource

Das Script erzeugt nur die Konfigurations-Dateien für das Mapping von DNs zu Unix Accounts und in diesen Konfigurations-Dateien die Namen von Unix Accounts. Es erzeugt selbst keine Unix Accounts. In der lokalen Nutzerverwaltung einer Site oder einer Ressource muss also dafür gesorgt werden, dass neue Unix Account angelegt werden, wenn neue Nutzer im Mapping auftauchen. Eine einfache Möglichkeit besteht darin, einen festen Pool von z.B. 200 Nutzern ppvv0001 bis ppvv0200 im Voraus auf allen Ressourcen der Site anzulegen für alle VOs, die dort rechnen dürfen. Dann muss nur noch sichergestellt werden, dass dieser Pool nicht überläuft, wenn es mehr als 200 D-Grid Nutzer einer VO für diese Site gibt.

Das Prefix pp kann frei gewählt werden, die Kürzel vv für die VOs stehen fest. Sie können in der Liste der VOs gefunden werden:

Das Script sollte auf der Ressource regelmäßig ausgeführt werden (mindestens alle 24 Stunden, z.B. über cron), damit das Mapping DNs / Accounts automatisch aktualisiert wird.

 

Beispiele:

Aktualisieren eines grid-mapfile für Globus:

Letztes grid-mapfile sichern:

cp -a /etc/grid-security/grid-mapfile /etc/grid-security/grid-mapfile.save

grid-mapfile aktualisieren:

dgridmap -output-g /etc/grid-security/grid-mapfile

 

Aktualisieren einer UUDB für UNICORE 6:

cd /opt/unicore6/xuudb

Erzeugen einer Sicherungskopie:

/opt/unicore6/xuudb/bin/admin.sh export xuudbBackup.csv

Erzeugen des mapfiles für UNICORE 6:

dgridmap -cert-path /root/certificates -output-xu /opt/unicore6/xuudb/xuudb_in.csv

Import der Benutzereinträge bei gleichzeitigem Löschen aller alten Einträge:

/opt/unicore6/xuudb/bin/admin.sh import -clean xuudb_in.csv

 

Aktualisieren eines dcache.kpwd für dCache:

Aktualisieren Sie ein grid-mapfile auf Ihrer dCache Ressource mit dgridmap -output-g-old file_g_old und verwenden Sie grid-mapfile2dcache, um aus dem aktualisierten grid-mapfile ein dcache.kpwd File zu erzeugen.

Download

Das Script ist unter folgendem Link zu finden: