Grid Federation-Verbindungen in StorageGRID automatisieren
Nachdem Sie zwei oder mehr StorageGRID Systeme mit der Version 12.1 oder höher installiert und konfiguriert haben, kann die Erstellung, Bearbeitung und Wartung von Grid Federation-Verbindungen mithilfe des manage-grid-federation.py Python-Skripts und einer JSON-Konfigurationsdatei automatisiert werden.
-
Alle Grids verwenden StorageGRID 12.1 oder höher.
-
Wenn Single Sign-On (SSO) auf einem beliebigen Grid aktiviert ist, wurde es deaktiviert.
-
Sie verfügen über eine Linux-Maschine mit installiertem Python 3.6 oder höher.
-
Sie kennen den Speicherort der folgenden Dateien aus dem Installationsarchiv:
Dateiname Beschreibung manage-grid-federation.py
Python Script zur Automatisierung der Verwaltung von Grid Federation-Verbindungen
manage-grid-federation.sample.json
Beispielkonfigurationsdatei für die Verwendung mit dem Skript
-
Sie haben eine
manage-grid-federation.jsonKonfigurationsdatei erstellt. Zum Erstellen dieser Datei kann die Beispiel-Konfigurationsdatei angepasstmanage-grid-federation.sample.jsonwerden.
|
|
Die Grid-Admin-Passwörter und Bereitstellungspassphrasen aus der manage-grid-federation.json Konfigurationsdatei sollten an einem sicheren Ort aufbewahrt werden. Wenn Anmeldeinformationen in der Datei fehlen, fordert das Skript diese interaktiv an. Auch eine Sicherungskopie der geänderten Konfigurationsdatei sollte an einem sicheren Ort aufbewahrt werden.
|
Felder der Konfigurationsdatei
Die JSON Konfigurationsdatei ist ein Array von Objekten. Jedes Objekt repräsentiert ein Grid und unterstützt die folgenden Felder:
| Feld | Erforderlich | Beschreibung |
|---|---|---|
|
Ja. |
Hostname oder IP-Adresse des Admin Node für das Grid |
|
Ja. |
Anzeigename für das Grid (maximal 12 Zeichen) |
|
Nein |
Grid-Administrator-Benutzername (wird interaktiv abgefragt, falls ausgelassen) |
|
Nein |
Grid Admin-Passwort (wird interaktiv abgefragt, falls nicht angegeben) |
|
Nein |
Bereitstellungspasswort (wird interaktiv abgefragt, falls weggelassen) |
|
Nein |
Pfad zu einem benutzerdefinierten CA-Zertifikatspaket für die SSL-Überprüfung |
|
Nein |
Gewünschte Standard-S3-Region für globale Namespace-Verbindungen |
|
Nein |
Gewünschter CNAME für globale Namespace-Verbindungen |
|
Nein |
Gewünschter globaler Namespace Endpunkt |
|
|
Wenn Sie eines der globalen Namespace-Felder konfigurieren (region, CNAME, globalEndpoint, müssen Sie alle drei für jedes Grid angeben. Es ist sicherzustellen, dass die Regionen und CNAMEs gridübergreifend eindeutig sind und der globalEndpoint Wert für alle Grids identisch ist.
|
Sie können das manage-grid-federation.py Python-Skript und die manage-grid-federation.json Konfigurationsdatei verwenden, um die Verwaltung der Grid Federation Verbindungen zu automatisieren. Das Skript führt die folgenden Operationen aus:
-
Authentifiziert sich bei jedem Grid über die Grid Management API
-
Es wird sichergestellt, dass auf allen Grids StorageGRID 12.1 oder höher ausgeführt wird.
-
Überprüft, ob Single Sign-On auf jedem Grid deaktiviert ist.
-
Ruft bestehende Grid Federation-Verbindungen und S3-Konfiguration ab
-
Aktualisiert die Einstellungen für S3-Region, CNAME und globalen Namespace-Endpunkt, wenn konfiguriert
-
Erstellt neue Grid Federation-Verbindungen für alle Grid-Paare, die noch nicht verbunden sind
-
Bearbeitet bestehende Verbindungen, wenn sich Anzeigenamen oder globale Namensraumeinstellungen geändert haben
-
Zeigt eine Zusammenfassung aller Verbindungen und deren Status
|
|
Grid-Federation-Verbindungen lassen sich auch direkt über die Grid Manager Benutzeroberfläche oder die Grid Management API verwalten. |
-
Melden Sie sich an der Linux-Maschine an, die Sie verwenden, um das Python-Skript auszuführen.
-
In das Verzeichnis wechseln, das das Skript enthält.
Beispiel:
cd StorageGRID-Webscale-version/platform
wobei platform
debs,rpmsodervsphereist. -
Führen Sie das Python-Skript aus und verwenden Sie die von Ihnen erstellte Konfigurationsdatei.
Beispiel:
./manage-grid-federation.py -i manage-grid-federation.jsonSie können die folgenden Befehlszeilenoptionen verwenden:
Option Standard Beschreibung -i, --input-json-file(erforderlich)
Pfad zur JSON Konfigurationsdatei, die die Liste der Grids enthält
-b, --base-port23001
Startportnummer für neue Grid Federation-Verbindungen
--no-verify-sslSSL-Verifizierung aktiviert
Deaktiviert die SSL-Zertifikatsprüfung für lokale Verbindungen zum Grid.
Bestehende Verbindungen bearbeiten
Wenn das Skript feststellt, dass bestehende Verbindungen Änderungen erfordern, zum Beispiel weil sich die Anzeigenamen im Grid geändert haben oder die globalen Namespace-Einstellungen aktualisiert werden müssen, wird eine Zusammenfassung der vorgeschlagenen Änderungen angezeigt und vor dem Fortfahren eine Bestätigung angefordert.
Wenn S3-Konfigurationsaktualisierungen ((region, CNAME oder globalEndpoint) auf Grids mit aktiviertem globalen Namensraum erforderlich sind, muss das Skript den globalen Namensraum vorübergehend deaktivieren, um die Änderungen anzuwenden. In diesem Fall warnt die Bestätigungsabfrage vor dem vorübergehenden Routingausfall.
*** Global Namespace Disable Required *** Global Namespace must be disabled to update region/CNAME/globalEndpoint settings. Routing requests will not work until Global Namespace is re-enabled. Grids requiring S3 updates: grid1.example.com, grid2.example.com Proceed with these edits and the temporary routing outage? [y/N]:
|
|
Während der Aktualisierung der S3-Konfiguration ist der globale Namensraum vorübergehend deaktiviert, wodurch Routing-Anfragen für den globalen Namensraum nicht funktionieren. Diese Operation sollte während eines Wartungsfensters eingeplant werden. |
Ihre Grid-Federation-Verbindungen sind hergestellt und konfiguriert, wenn das Skript eine Bestätigungszusammenfassung ähnlich der folgenden anzeigt:
===== Newly Established Connections =====
• Grid-A and Grid-B — grid-a.example.com and grid-b.example.com on port 23001
Total new connections: 1
===== All Grid-Federation Connections =====
Name Source Target Port Status Global Namespace
---------------- -------------------- -------------------- ----- -------- ----------------
Grid-A and Grid-B grid-a.example.com grid-b.example.com 23001 new enabled
Total connections listed: 1
===== Grid S3 Configuration Summary =====
grid-a.example.com:
Default Region: us-east-1
CNAME: s3-a.example.com
Global namespace endpoint: gn.example.com
grid-b.example.com:
Default Region: us-west-1
CNAME: s3-b.example.com
Global namespace endpoint: gn.example.com
Exit Status
| Codieren | Beschreibung |
|---|---|
|
Skript erfolgreich abgeschlossen |
|
Die Validierung ist fehlgeschlagen oder ein Grid-API-Aufruf hat einen Fehler zurückgegeben (Protokollausgabe prüfen) |
|
|
Sollten Verbindungen fehlschlagen, verarbeitet das Skript die verbleibenden Paare weiter und meldet alle Fehler im Abschnitt „Fehlgeschlagene Verbindungen“ der Ausgabe. Die Fehlermeldungen sollten überprüft und etwaige Probleme behoben werden, bevor das Skript erneut ausgeführt wird. |