Oracle Exadata Database Service on Cloud@Customer mit Oracle Cloud Infrastructure-Befehlszeilenschnittstelle verwalten

Einführung

Oracle Cloud Infrastructure Command Line Interface (OCI-CLI) ist ein großartiges Tool zur Verwaltung Ihrer Ressourcen in OCI, einschließlich Oracle Exadata Database Service on Cloud@Customer-Ressourcen. Mit der OCI-CLI können Sie OCI-Vorgänge einfach und effizient orchestrieren und automatisieren. Da die OCI-CLI die OCI-REST-API aufruft, bedeutet dies, dass die OCI-CLI und die OCI-REST-API kompatibel sind, obwohl die Syntax unterschiedlich ist. Sie können die OCI-CLI bei der Entwicklung von OCI-REST-API-Automatisierungen für Test- und Fehlerzwecke verwenden und dann Ihre Automatisierungen mit weniger Aufwand bereitstellen.

Dies ist eine zweiteilige Serie, in der wir Ihnen in diesem ersten Teil die Grundlagen der OCI-CLI vorstellen, während wir uns im zweiten Teil mehr auf die Oracle Exadata Database Service on Cloud@Customer-spezifischen Befehle und Workflows konzentrieren.

Hinweis: Die OCI-CLI ist auch erforderlich, wenn Dynamic Scaling mit dem Remote-Plug-in verwendet wird. Die dynamische Skalierung selbst wird in diesem Tutorial jedoch nicht behandelt.

Ziele

Voraussetzungen

Aufgabe 1: OCI-CLI installieren

Die OCI-CLI basiert auf dem OCI Software Development Kit (SDK) für Python und wird unter Mac, Windows oder Linux ausgeführt. Der Python-Code ruft OCI-APIs auf, um die für die verschiedenen Services implementierten Funktionen bereitzustellen, einschließlich Oracle Exadata Database Service on Cloud@Customer und Oracle Autonomous Database on Exadata Cloud@Customer.

  1. Laden Sie die OCI-CLI für Ihr BS hier herunter: OCI-CLI-Repository GitHub.

  2. Befolgen Sie die Installationsanweisungen gemäß Ihrem Betriebssystem.

  3. Führen Sie den folgenden Befehl aus, um die Installation zu überprüfen.

    $ oci --version
    
  4. Richten Sie eine Konfiguration über das Setupdialogfeld ein, das die erforderlichen Zugangsdaten für die Arbeit mit OCI enthält.

    $ oci setup config
    
  5. Prüfen Sie die Konfigurationsdatei.

    Beispiel:

    [DEFAULT]
    user=ocid1.user.oc1..<unique_ID>
    fingerprint=<your_fingerprint>
    key_file=~/.oci/oci_api_key.pem
    tenancy=ocid1.tenancy.oc1..<unique_ID>
    # Some comment
    region=us-ashburn-1
    
  6. Führen Sie den folgenden Befehl aus, um Ihre Konnektivität zu prüfen. Dadurch wird der Namespace Ihres Mandanten angezeigt.

    $ oci os ns get
    
  7. Führen Sie den folgenden Befehl aus, um die verfügbaren Compartments aufzulisten.

    $ oci iam compartment list
    

    Dadurch wird die folgende JSON-Antwort generiert:

    {
     "data": [
    {
           "compartment-id": "ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq",
           "defined-tags": {
                     "Oracle-Tags": {
                                    "CreatedBy": "default/some-email@oracle.com",
                                    "CreatedOn": "2023-11-10T13:27:32.885Z"
    }
    },
    "description": "Compartment for Exadata Infrastructure",
    "freeform-tags": {},
    "id": "ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q",
    "inactive-status": null,
    "is-accessible": null,
    "lifecycle-state": "ACTIVE",
    "name": "ExaInfra",
    "time-created": "2023-11-10T13:27:32.945000+00:00"
         }
         ]
    }
    

    Hinweis: Beachten Sie, dass die Ausgabe abgeschnitten wurde, damit nur das erste Compartment angezeigt wird.

  8. Führen Sie den folgenden Befehl aus, um alle Arbeitsanforderungen in einem Compartment aufzulisten.

    $ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
    

Verwenden Sie die Ausgabeformatierung, um die Befehlsausgaben nach Ihren Anforderungen zu filtern und zu formatieren

Wie Sie in den vorherigen Beispielen gesehen haben, kann die JSON-Antwort von OCI-CLI-Befehlen umfangreich, schwer zu befolgen und nicht leicht zu lesen sein.

An der Eingabeaufforderung in Linux zum Beispiel können Sie die Ausgabe immer per Pipe an Elektrowerkzeuge wie grep übergeben, um Ihre Antwort zu filtern.

Mit dem folgenden Befehl können Sie alle VM-Cluster in einem bestimmten Compartment auflisten und nach id filtern.

$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"

Dadurch wird die folgende Antwort generiert:

"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"

OCI CLI hat jedoch eine Abfragefunktionalität mit dem Parameter --query integriert, in der Sie angeben können, welche Felder Sie abfragen möchten.

  1. Führen Sie den folgenden Befehl mit dem Parameter --query aus.

    $ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
    

    Die JSON-Antwort lautet:

    [
         [
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
         ],
         [
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
          ]
    ]
    
  2. Sie können ganz einfach zusätzliche Felder hinter --query angeben, um eine komplexere Abfrage zu erstellen.

    $ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
    

    Die JSON-Antwort lautet:

    [
         [
    "fraexaclu1-uvlkz",
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
         ],
         [
    "fraexaclu2-2uyfk",
    "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
         ]
        ]	
    
  3. Sie können eine benutzerfreundlichere Ausgabe mit dem Tabellenparameter --output erhalten.

    $oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
    

    Die Antwort lautet:

    +----------------------------------------------------------------------------------------------------------------------+
    | Column1          |  Column2                                                                                          |
    +----------------------------------------------------------------------------------------------------------------------+
    | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq |
    | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra |
    +------------------+---------------------------------------------------------------------------------------------------+
    
  4. Sie können die Überschriften für die Spalten auch mit dem Parameter --query angeben.

    $ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
    

    Die Antwort lautet:

    +----------------------------------------------------------------------------------------------------------------------+
    | Hostname          | OCID                                                                                             |
    +----------------------------------------------------------------------------------------------------------------------+
    | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq |
    | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra |
    +------------------+---------------------------------------------------------------------------------------------------+
    

    Hinweis: Es ist wichtig, die Korrelation zwischen der mit dem Parameter --query verwendeten Syntax und der JSON-Antwort zu verstehen. OCI-CLI-Unterbefehle wie list geben in der Regel viele Ergebnisse zurück, während OCI-CLI-Unterbefehle wie get nur ein Ergebnis zurückgeben.

    • In der JSON-Antwort wird angezeigt, dass es sich bei den Daten um eine Liste oder ein Array handelt, wie durch eine [ angegeben.

      [opc@jens-oci-1 ~]$ oci db vm-cluster list
      {
           "data": [
                {
      

      Die Abfragesyntax sieht dann wie folgt aus:

      --query "data[].[ field1 , field2 ]"
      
    • In der JSON-Antwort wird angezeigt, dass es sich bei den Daten um ein einzelnes Objekt handelt.

      [opc@jens-oci-1 ~]$ oci db vm-cluster get
      {
           "data": {
      

      Dann sieht die Syntax für den get-Befehl wie folgt aus:

      --query "data.[ field1 , field2 ]"
      

Mit Eingabeunterstützung die Verwendung der OCI-CLI vereinfachen

Es gibt eine Reihe verschiedener Möglichkeiten, um Input-Unterstützung mit der OCI-CLI für Ad-hoc- und automatisierte Anwendungsfälle zu erhalten.

Bestätigungen

Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.