Erstellen einer Service-Instanz für MongoDBOps Manager programmgesteuert
Nach der Installation müssen Sie mindestens eine MongoDBOps Manager MongoDBService-Instanz im Oper andenprojekt erstellen. Wenn Sie ein Cloud Pak for Data Benutzer sind, können Sie den /v3/service_instances REST-API-Aufruf verwenden, um Service-Instanzen programmgesteuert zu erstellen.
- Wer muss diese Aufgabe erledigen?
- Um eine Serviceinstanz programmgesteuert mithilfe des
/v3/service_instancesREST-API-Aufrufs zu erstellen, müssen Sie über die Berechtigung „Serviceinstanzen erstellen (can_provision)“ IBM® Software Hubin verfügen.
- Wann müssen Sie diese Aufgabe erledigen?
- Führen Sie diese Aufgabe nur aus, wenn Sie eine Serviceinstanz programmgesteuert mithilfe des
/v3/service_instancesREST-API-Aufrufs erstellen möchten.
Alternative Methoden zum Erstellen einer Service-Instanz
- Über den Web-Client. Weitere Informationen finden Sie unter Erstellen einer Serviceinstanz für MongoDBOps Manager über den Webclient.
- Durch Verwendung des
cpd-cli service-instance createBefehls. Weitere Informationen finden Sie unter Erstellen einer Service-Instanz für MongoDBOps Manager mit dem Befehl cpd-cli service-instance create.
Erforderliche Informationen zum Ausführen dieser Task
Überprüfen Sie die folgenden Informationen, bevor Sie eine Serviceinstanz für erstellen MongoDB :
- Versionsvoraussetzungen
Alle Komponenten, die mit einer Instanz von verbunden Cloud Pak for Data sind, müssen in derselben Version installiert oder erstellt werden. Wenn beispielsweise in Version MongoDB 5.3.1 installiert ist, müssen Sie die Dienstinstanz in Version erstellen 5.3.1.
Wichtig: MongoDBOps Manager verwendet eine andere Versionsnummer als Cloud Pak for Data. Dieses Thema enthält eine Tabelle, die die MongoDBOps Manager Version für jede Aktualisierung von Cloud Pak for Dataanzeigt. Verwenden Sie diese Tabelle, um die richtige Version basierend auf der installierten Version Cloud Pak for Data von zu finden.
- Umgebungsvariablen
Die Befehle in dieser Aufgabe verwenden Umgebungsvariablen, sodass Sie die Befehle genau wie angegeben ausführen können.
- Wenn Sie nicht über das Skript verfügen, das die Umgebungsvariablen definiert, lesen Sie den Abschnitt „Einrichten der Installationsumgebungsvariablen “.
- Um die Umgebungsvariablen aus dem Skript zu verwenden, müssen Sie die Umgebungsvariablen vor der Ausführung der Befehle in dieser Aufgabe laden. Führen Sie beispielsweise folgenden Befehl aus:
source ./cpd_vars.sh
Vorbereitende Schritte
Diese Aufgabe setzt voraus, dass die folgenden Voraussetzungen erfüllt sind:
| Voraussetzung | Weiterführende Informationen |
|---|---|
| MongoDB ist installiert. | Wenn diese Aufgabe nicht abgeschlossen ist, siehe Installation MongoDB. |
| Sie haben einen API-Schlüssel generiert. Der API-Schlüssel muss einem Benutzer zugeordnet sein, der über die Berechtigung „Dienstinstanzen erstellen ( |
Wenn diese Aufgabe nicht abgeschlossen ist, siehe Generieren eines API-Autorisierungstokens. |
Vorgehensweise
Führen Sie die folgenden Schritte aus, um eine Serviceinstanz zu erstellen:
Serviceinstanz erstellen
Erstellen Sie die Serviceinstanz wie folgt:
- Wechseln Sie zu dem Verzeichnis auf Ihrer Workstation, in dem Sie die JSON-Datei erstellen möchten, die die Nutzlast der Serviceinstanz definiert.
- Legen Sie die Umgebungsvariablen fest, die zum Ausfüllen der JSON-Nutzlast für die Ops ManagerMongoDB verwendet werden.
- Setzen Sie die
OPS_MGR_NAMEUmgebungsvariable auf den eindeutigen Namen, den Sie als Anzeigenamen für das Ops Manager: verwenden möchtenexport OPS_MGR_NAME="<display-name>"Dieser Name wird auf der Seite „Instanzen“ des IBM Software Hub Webclients angezeigt.
Der Anzeigename ist ein
stringund darf nur Kleinbuchstaben (a-z), Ziffern (0-9), Bindestriche (-) und Punkte (.) enthalten.Der Anzeigename muss mit einem alphanumerischen Zeichen beginnen und enden.
- Setzen Sie die
OPS_MGR_DESCRIPTIONUmgebungsvariable auf die Beschreibung, die Sie für das Ops Manager: verwenden möchtenexport OPS_MGR_DESCRIPTION="<description>"Diese Beschreibung wird auf der Seite „Instanzen“ des IBM Software Hub Webclients angezeigt.
Die Beschreibung ist ein
stringund kann alphanumerische Zeichen, Leerzeichen, Bindestriche, Unterstriche und Punkte enthalten. Achten Sie darauf, den Anzeigenamen in Anführungszeichen zu setzen, wie im vorstehendenexportBefehl gezeigt. - Setzen Sie die
OPS_MGR_VERSIONUmgebungsvariable auf eine Version, die der Version von IBM Software Hub auf Ihrem Cluster entspricht:export OPS_MGR_VERSION=<version>Verwenden Sie die folgende Tabelle, um die verfügbaren Werte zu ermitteln:
IBM Software Hub-Version Ops Manager-Version 5.3.1 7.0.15, 8.0.6 5.3.0 7.0.15, 8.0.6 - Setzen Sie die
OPS_MGR_USERNAMEUmgebungsvariable auf den Namen, den Sie für den Zugriff auf das Ops Manager: verwenden möchtenexport OPS_MGR_USERNAME=<username> - Setzen Sie die
OPS_MGR_PASSWORDUmgebungsvariable auf das Passwort, das Sie für den Zugriff auf das Ops Managerverwenden möchten:export OPS_MGR_PASSWORD=<password>Das Passwort muss mindestens 8 Zeichen lang sein und mindestens einen Buchstaben, eine Zahl und ein Sonderzeichen enthalten.
- Legen Sie die
OPS_MGR_ON_DEDICATEDUmgebungsvariable fest, je nachdem, ob Sie die Bereitstellung Ops Manager auf dedizierten Knoten durchführen möchten:export MGR_ON_DEDICATED=<boolean>- Geben Sie true an, dass das Programm Ops Manager auf dedizierten Knoten ausgeführt werden soll.
- Geben Sie false an, dass Ops Manager auf Knoten ausgeführt werden soll, auf denen andere Pods laufen.
Weitere Informationen finden Sie unter Einrichten dedizierter Notizen für Ihre MongoDB Bereitstellung.
- Legen Sie die
AUTO_DELETE_RESOURCESUmgebungsvariable fest, je nachdem, ob Sie die persistenten Volume-Ansprüche (PVCs) und Geheimnisse, die mit der Instanz verknüpft sind, automatisch Ops Manager löschen möchten, wenn Sie eine Ops Manager Instanz löschen.export AUTO_DELETE_RESOURCES=<boolean>- Geben Sie true an, dass die Ressourcen automatisch gelöscht werden sollen, wenn Sie eine Dienstinstanz löschen.Wichtig: Die Löschung ist endgültig. Die Daten in den PVCs und Geheimnissen können nicht wiederhergestellt werden.
- Geben Sie an, dass die Ressourcen beim false Löschen einer Serviceinstanz erhalten bleiben sollen.
- Geben Sie true an, dass die Ressourcen automatisch gelöscht werden sollen, wenn Sie eine Dienstinstanz löschen.
- Setzen Sie die
MD_INSTANCE_REPLICASUmgebungsvariable auf die Anzahl der zu erstellenden Replikate der Ops Manager Metadaten:export MD_INSTANCE_REPLICAS=<integer>Geben Sie eine ganze Zahl zwischen 1 und 50 an. Geben Sie zwei oder mehr Replikate für hohe Verfügbarkeit an. Der empfohlene Wert ist 3.
- Legen Sie die
MD_REPLICA_CPUUmgebungsvariable basierend auf der Anzahl der CPUs fest, die Sie jeder Ops Manager Metadaten-Replik zuweisen möchten:export MD_REPLICA_CPU=<integer>Geben Sie eine ganze Zahl zwischen 1 und 16 an.
- Legen Sie die
MD_REPLICA_MEMORYUmgebungsvariable basierend auf der Speichermenge fest, die Sie jeder Ops Manager Metadaten-Replik zuweisen möchten:export MD_REPLICA_MEMORY=<integer>Geben Sie eine ganze Zahl zwischen 1 und 64 an.
- Legen Sie die
MD_STORAGE_SIZEUmgebungsvariable basierend auf der Menge der Metadaten fest, die Sie speichern möchten, einschließlich Backups:export MD_STORAGE_SIZE=<integer>Geben Sie eine ganze Zahl zwischen 1 und 300 an.
- Setzen Sie die
MD_STORAGE_UNITUmgebungsvariable:export MD_STORAGE_UNIT=<unit>Geben Sie Gi für Gibibyte, Ti für Tebibyte oder Pi für Pebibyte an.
- Setzen Sie die
MGR_INSTANCE_REPLICASUmgebungsvariable auf die Anzahl der zu erstellenden Ops Manager Replikate des :export MGR_INSTANCE_REPLICAS=<integer>Geben Sie eine ganze Zahl zwischen 1 und 50 an. Geben Sie zwei oder mehr Replikate für hohe Verfügbarkeit an. Der empfohlene Wert ist 3.
- Legen Sie die
MGR_REPLICA_CPUUmgebungsvariable basierend auf der Anzahl der CPUs fest, die Sie jeder Ops Manager Replik zuweisen möchten:export MGR_REPLICA_CPU=<integer>Geben Sie eine ganze Zahl zwischen 1 und 16 an.
- Legen Sie die
MGR_REPLICA_MEMORYUmgebungsvariable basierend auf der Speichermenge fest, die Sie jeder Ops Manager Replik zuweisen möchten:export MGR_REPLICA_MEMORY=<integer>Geben Sie eine ganze Zahl zwischen 1 und 64 an.
- Legen Sie die
MGR_STORAGE_SIZEUmgebungsvariable basierend auf der Anzahl der Datenbanken fest, die Sie von dieser Instanz des Ops Manager:export MGR_STORAGE_SIZE=<integer>Geben Sie eine ganze Zahl zwischen 1 und 1000 an.
- Setzen Sie die
MGR_STORAGE_UNITUmgebungsvariable:export MD_STORAGE_UNIT=<unit>Geben Sie Gi für Gibibyte, Ti für Tebibyte oder Pi für Pebibyte an.
- Setzen Sie die
- Erstellen Sie die
mongodb-ops-mgr.jsonNutzlastdatei:cat << EOF > ./mongodb-ops-mgr.json{ "addon_type": "opsmanager", "display_name": "${OPS_MGR_NAME}", "namespace": "${PROJECT_CPD_INST_OPERANDS}", "addon_version": "${VERSION}", "create_arguments": { "description": "${OPS_MGR_DESCRIPTION}", "metadata":{ "opsusername":"${OPS_MGR_USERNAME}", "opspassword":"${OPS_MGR_PASSWORD}" }, "parameters": { "mgrapplyondedicated": "${OPS_MGR_ON_DEDICATED}", "mgrforcedeleteresources": "${AUTO_DELETE_RESOURCES}", "mdnumberofnodes": "${MD_INSTANCE_REPLICAS}", "mdcorespernode": "${MD_REPLICA_CPU}", "mdmemorypernode": "${MD_REPLICA_MEMORY}", "mdsize": "${MD_STORAGE_SIZE}", "mdunit": "${MD_STORAGE_UNIT}", "mdstorageclass": "${STG_CLASS_FILE}", "mgrnumberofnodes": "${MGR_INSTANCE_REPLICAS}", "mgrcorespernode": "${MGR_REPLICA_CPU}", "mgrmemorypernode": "${MGR_REPLICA_MEMORY}", "mgrsize": "${MGR_STORAGE_SIZE}", "mgrunit": "${MGR_STORAGE_UNIT}", "mgrstorageclass": "${STG_CLASS_FILE}" "mgrversion": "${OPS_MGR_VERSION}", } } } EOFDie folgenden Umgebungsvariablen verwenden die Werte, die bereits in Ihrem Skript für Installationsumgebungsvariablen definiert sind:${PROJECT_CPD_INST_OPERANDS}${STG_CLASS_FILE}
- Setzen Sie die
PAYLOAD_FILEUmgebungsvariable auf den vollqualifizierten Namen der JSON-Payload-Datei auf Ihrer Workstation:export PAYLOAD_FILE=<fully-qualified-JSON-file-name> - Legen Sie die Umgebungsvariablen fest, die für die Verbindung mit der Instanz verwendet werden, IBM Software
Hub in der Sie die Dienstinstanz erstellen möchten:
- Setzen Sie die
CPD_ROUTEUmgebungsvariable:export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})Der Befehl verwendet die
PROJECT_CPD_INST_OPERANDSVariable, die bereits in Ihrem Skript für die Installationsumgebungsvariablen definiert ist. - Setzen Sie die
API_KEYUmgebungsvariable auf den von Ihnen erstellten API-Schlüssel:export API_KEY=<your_api_key>
- Setzen Sie die
- Erstellen Sie die Service-Instanz aus der Payload-Datei.
Der auszuführende Befehl hängt davon ab, ob die Instanz, IBM Software Hub in der Sie die Dienstinstanz erstellen möchten, ein selbstsigniertes Zertifikat oder ein von einer vertrauenswürdigen Zertifizierungsstelle signiertes Zertifikat verwendet.
Die Instanz verwendet ein Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde
curl --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
Die Instanz verwendet ein selbstsigniertes Zertifikat (Standard)
curl -k --request POST \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json' \ --data @${PAYLOAD_FILE}
Wenn die Anfrage erfolgreich war, gibt der Befehl einen der folgenden HTTP Antwortcodes zurück:- 200 – Die Anfrage wurde erfolgreich abgeschlossen und die Serviceinstanz wurde bereitgestellt.
- 202 – Die Anfrage wurde erfolgreich übermittelt. Die Service-Instanz wird bereitgestellt.
Wenn die Anfrage nicht erfolgreich war, verwenden Sie den HTTP Antwortcode, um den Grund zu ermitteln.
Überprüfen, ob die Service-Instanz erstellt wurde
Um zu überprüfen, ob die Service-Instanz erstellt wurde:
- Setzen Sie die
INSTANCE_IDUmgebungsvariable auf die ID, die vomPOSTcURL Befehl zurückgegeben wurde:export INSTANCE_ID=<ID-from-response> - Rufen Sie den Status der Service-Instanz ab.
Der auszuführende Befehl hängt davon ab, ob die Instanz, IBM Software Hub in der Sie die Dienstinstanz erstellen möchten, ein selbstsigniertes Zertifikat oder ein von einer vertrauenswürdigen Zertifizierungsstelle signiertes Zertifikat verwendet.
Die Instanz verwendet ein Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde
curl --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json'
Die Instanz verwendet ein selbstsigniertes Zertifikat (Standard)
curl -k --request GET \ --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \ --header "Authorization: ZenApiKey ${API_KEY}" \ --header 'Content-Type: application/json'
- Wenn die Anfrage erfolgreich war, gibt der Befehl den folgenden HTTP Antwortcode zurück: 200Finden Sie den
provision_statusParameter in der JSON-Antwort.- Wenn der Wert ist
PROVISIONED, wurde die Service-Instanz erfolgreich erstellt. - Wenn der Wert ist
PROVISION_IN_PROGRESS, warten Sie einige Minuten und führen Sie den Befehl erneut aus. - Wenn der Wert ist
FAILED, überprüfen Sie die Pod-Protokolle für diezen-core-apiundzen-watcherPods auf mögliche Ursachen.
- Wenn der Wert ist
- Wenn die Anfrage nicht erfolgreich war, verwenden Sie den HTTP Antwortcode, um den Grund zu ermitteln.
- Wenn die Anfrage erfolgreich war, gibt der Befehl den folgenden HTTP Antwortcode zurück: 200
Nächste Schritte
Nachdem Sie die bereitgestellt MongoDBOps Manager haben, können Sie eine oder mehrere MongoDB Datenbankinstanzen bereitstellen. Weitere Informationen finden Sie unter Programmgesteuertes Erstellen einer Serviceinstanz für „ MongoDB “.