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_instances REST-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_instances REST-API-Aufrufs erstellen möchten.
Alternative Methoden zum Erstellen einer Service-Instanz

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 (can_provision)“ IBM Software Hubin verfügt.

Wenn diese Aufgabe nicht abgeschlossen ist, siehe Generieren eines API-Autorisierungstokens.

Vorgehensweise

Führen Sie die folgenden Schritte aus, um eine Serviceinstanz zu erstellen:

  1. Erstellen einer Service-Instanz
  2. Überprüfen, ob die Service-Instanz erstellt wurde
  3. Was als Nächstes zu tun ist

Serviceinstanz erstellen

Erstellen Sie die Serviceinstanz wie folgt:

  1. Wechseln Sie zu dem Verzeichnis auf Ihrer Workstation, in dem Sie die JSON-Datei erstellen möchten, die die Nutzlast der Serviceinstanz definiert.
  2. Legen Sie die Umgebungsvariablen fest, die zum Ausfüllen der JSON-Nutzlast für die Ops ManagerMongoDB verwendet werden.
    1. Setzen Sie die OPS_MGR_NAME Umgebungsvariable auf den eindeutigen Namen, den Sie als Anzeigenamen für das Ops Manager: verwenden möchten
      export OPS_MGR_NAME="<display-name>"

      Dieser Name wird auf der Seite „Instanzen“ des IBM Software Hub Webclients angezeigt.

      Der Anzeigename ist ein string und darf nur Kleinbuchstaben (a-z), Ziffern (0-9), Bindestriche (-) und Punkte (.) enthalten.

      Der Anzeigename muss mit einem alphanumerischen Zeichen beginnen und enden.

    2. Setzen Sie die OPS_MGR_DESCRIPTION Umgebungsvariable auf die Beschreibung, die Sie für das Ops Manager: verwenden möchten
      export OPS_MGR_DESCRIPTION="<description>"

      Diese Beschreibung wird auf der Seite „Instanzen“ des IBM Software Hub Webclients angezeigt.

      Die Beschreibung ist ein string und kann alphanumerische Zeichen, Leerzeichen, Bindestriche, Unterstriche und Punkte enthalten. Achten Sie darauf, den Anzeigenamen in Anführungszeichen zu setzen, wie im vorstehenden export Befehl gezeigt.

    3. Setzen Sie die OPS_MGR_VERSION Umgebungsvariable 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
    4. Setzen Sie die OPS_MGR_USERNAME Umgebungsvariable auf den Namen, den Sie für den Zugriff auf das Ops Manager: verwenden möchten
      export OPS_MGR_USERNAME=<username>
    5. Setzen Sie die OPS_MGR_PASSWORD Umgebungsvariable 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.

    6. Legen Sie die OPS_MGR_ON_DEDICATED Umgebungsvariable 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.

    7. Legen Sie die AUTO_DELETE_RESOURCES Umgebungsvariable 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.
    8. Setzen Sie die MD_INSTANCE_REPLICAS Umgebungsvariable 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.

    9. Legen Sie die MD_REPLICA_CPU Umgebungsvariable 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.

    10. Legen Sie die MD_REPLICA_MEMORY Umgebungsvariable 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.

    11. Legen Sie die MD_STORAGE_SIZE Umgebungsvariable 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.

    12. Setzen Sie die MD_STORAGE_UNIT Umgebungsvariable:
      export MD_STORAGE_UNIT=<unit>

      Geben Sie Gi für Gibibyte, Ti für Tebibyte oder Pi für Pebibyte an.

    13. Setzen Sie die MGR_INSTANCE_REPLICAS Umgebungsvariable 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.

    14. Legen Sie die MGR_REPLICA_CPU Umgebungsvariable 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.

    15. Legen Sie die MGR_REPLICA_MEMORY Umgebungsvariable 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.

    16. Legen Sie die MGR_STORAGE_SIZE Umgebungsvariable 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.

    17. Setzen Sie die MGR_STORAGE_UNIT Umgebungsvariable:
      export MD_STORAGE_UNIT=<unit>

      Geben Sie Gi für Gibibyte, Ti für Tebibyte oder Pi für Pebibyte an.

  3. Erstellen Sie die mongodb-ops-mgr.json Nutzlastdatei:
    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}",
        }
      }
    }
    EOF
    Die folgenden Umgebungsvariablen verwenden die Werte, die bereits in Ihrem Skript für Installationsumgebungsvariablen definiert sind:
    • ${PROJECT_CPD_INST_OPERANDS}
    • ${STG_CLASS_FILE}
  4. Setzen Sie die PAYLOAD_FILE Umgebungsvariable auf den vollqualifizierten Namen der JSON-Payload-Datei auf Ihrer Workstation:
    export PAYLOAD_FILE=<fully-qualified-JSON-file-name>
  5. 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:
    1. Setzen Sie die CPD_ROUTE Umgebungsvariable:
      export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})

      Der Befehl verwendet die PROJECT_CPD_INST_OPERANDS Variable, die bereits in Ihrem Skript für die Installationsumgebungsvariablen definiert ist.

    2. Setzen Sie die API_KEY Umgebungsvariable auf den von Ihnen erstellten API-Schlüssel:
      export API_KEY=<your_api_key>
  6. 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:

  1. Setzen Sie die INSTANCE_ID Umgebungsvariable auf die ID, die vom POSTcURL Befehl zurückgegeben wurde:
    export INSTANCE_ID=<ID-from-response>
  2. 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: 200
      Finden Sie den provision_status Parameter 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 die zen-core-api und zen-watcher Pods auf mögliche Ursachen.
    • Wenn die Anfrage nicht erfolgreich war, verwenden Sie den HTTP Antwortcode, um den Grund zu ermitteln.

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 “.