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
-
Installieren Sie die OCI-CLI.
-
Verwenden Sie die Ausgabeformatierung, um die Befehlsausgaben nach Ihren Anforderungen zu filtern und zu formatieren.
-
Verwenden Sie die Eingabeunterstützung, um die Verwendung der OCI-CLI zu vereinfachen.
Voraussetzungen
-
Zugriff auf einen OCI-Mandanten mit einer Oracle Exadata Database Service on Cloud@Customer-Infrastruktur.
-
Ein Benutzer, der im Mandanten in einer Gruppe mit einer Policy erstellt wurde, die die gewünschten Berechtigungen erteilt.
-
Eine unterstützte Version der Python-Umgebung, die auf einem unterstützten Betriebssystem (BS) mit Zugriff auf den OCI-Mandanten installiert ist. Weitere Informationen finden Sie unter Unterstützte Python-Versionen und -Betriebssysteme.
-
Ein Schlüsselpaar zum Signieren von API-Anforderungen, wobei der Public Key bei Oracle hochgeladen wird.
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.
-
Laden Sie die OCI-CLI für Ihr BS hier herunter: OCI-CLI-Repository GitHub.
-
Befolgen Sie die Installationsanweisungen gemäß Ihrem Betriebssystem.
-
Führen Sie den folgenden Befehl aus, um die Installation zu überprüfen.
$ oci --version
-
Richten Sie eine Konfiguration über das Setupdialogfeld ein, das die erforderlichen Zugangsdaten für die Arbeit mit OCI enthält.
$ oci setup config
-
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
-
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
-
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.
-
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.
-
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" ] ]
-
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" ] ]
-
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 | +------------------+---------------------------------------------------------------------------------------------------+
-
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 wielist
geben in der Regel viele Ergebnisse zurück, während OCI-CLI-Unterbefehle wieget
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.
-
Umgebungsvariablen verwenden:
Mit Umgebungsvariablen können Sie die Werte der Parameter speichern, die an die OCI-CLI übergeben werden.
Beispiel: Sie möchten
$T
für eine Mandanten-OCID und$C
für eine Compartment-OCID verwenden.T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
Sie können dies in den OCI-CLI-Befehlen wie folgt verwenden:
$ oci work-requests work-request list --compartment-id $C
-
Verwenden von
--help
:Sie können jederzeit
--help
verwenden, um zusätzliche Informationen zu Ihrem Befehl zu erhalten. Dies gilt auf allen Ebenen in der OCI-CLI-Befehlsstruktur.Beispiel:
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
Im Folgenden finden Sie das Antwortbeispiel des Befehls
oci db vm-cluster --help
.Usage: oci db vm-cluster [OPTIONS] COMMAND [ARGS]... Details of the cloud VM cluster. Applies to Exadata Cloud Service instances only. Options: -?, -h, --help For detailed help on any of these individual commands, enter <command> --help. Commands: add Add Virtual Machines to the Cloud... change-vm-cluster-subscription Associate a cloud VM cluster with... change-compartment Moves a cloud VM cluster and its... create Creates a cloud VM cluster. delete Deletes the specified cloud VM... get Gets information about the... get-exadata-iorm-config Gets the IORM configuration for... get-update Gets information about a... get-update-history Gets the maintenance update... list Gets a list of the cloud VM... list-update-histories Gets the history of the... list-updates Lists the maintenance updates... remove Remove Virtual Machines from the... update Updates the specified cloud VM... update-exadata-iorm-config Updates the IORM settings for the...
-
Verwenden von Profilen in der Hauptkonfigurationsdatei:
Wenn Sie die OCI-CLI mit dem Setupdialogfeld einrichten, wird eine Hauptkonfigurationsdatei erstellt, die in der Ausgabe als Pfad aufgeführt wird. Unter Linux und Unix befindet sich die Hauptkonfigurationsdatei unter
/home/opc/.oci/config
.Beispiel für eine Hauptkonfigurationsdatei:
[opc@jens-oci-1 ~]$ cat .oci/config [DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1
Im obigen Beispiel wurde das Standardprofil mit dem definierten Benutzer, Mandanten und der definierten Region erstellt. Wenn Sie die Befehlszeile ohne Angabe der Parameter verwenden, werden die Standardwerte aus dem Profil verwendet. Wenn Sie Ergebnisse außerhalb der in der Profildatei definierten Werte anzeigen möchten, können Sie die Werte explizit in der Befehlszeile angeben.
Sie können auch mehrere Profile in der Hauptkonfigurationsdatei erstellen.
[DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1 [AMS] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-amsterdam-1
Mit dem folgenden Befehl können Sie auf das vordefinierte Profil verweisen.
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
Laufzeitkonfigurationsdateien verwenden:
Wenn Sie die Auswahl zwischen verschiedenen Regionen, Compartments, VM-Clustern usw. noch einfacher machen möchten, geben Sie Profile mit diesen Informationen in einer zweiten optionalen Laufzeitkonfigurationsdatei an. Die Laufzeitkonfigurationsdatei ergänzt die Hauptkonfigurationsdatei. Sie können Standardwerte für die Befehlszeilenparameter in der Laufzeitkonfigurationsdatei angeben.
Mit dem folgenden Befehl können Sie eine Laufzeitkonfigurationsdatei erstellen.
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
Sie können die Profile in der Hauptkonfigurationsdatei ergänzen und zusätzliche Profildetails am Ende der Laufzeitkonfigurationsdatei hinzufügen.
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
Mit dem folgenden Befehl können Sie diese definierten Profile bei der Befehlsausführung angeben.
$ oci db vm-cluster get --profile AMS --query "data.{\"OCID\" : \"id\" , \"Core Count\" : \"cpu-core-count\" }" --output table +------------+------------------------------------------------------------------------------------------------------+ | Core Count | OCID | +------------+------------------------------------------------------------------------------------------------------+ | 0 | ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | +------------+------------------------------------------------------------------------------------------------------+
-
JSON-Eingabedatei für vollständigen Befehl generieren:
Die JSON-Eingabedatei des vollständigen Befehls wird mit dem Parameter
--from-json file://<json file name>
verwendet, um alle Parameter für den Befehl anzugeben. Um dies zu ermöglichen, gibt es einen Parameter namens--generate-full-command-json-input
, der eine JSON-Datei mit allen Parametern für diesen Befehl erstellt.Verwenden Sie den folgenden Befehl, um eine JSON-Datei mit dem Dateinamen
vm-cluster_update.json
zu generieren.oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
Sie können diese JSON-Eingabedatei bearbeiten und nur die Parameter beibehalten, die für den auszuführenden Befehl relevant sind. In diesem Beispiel wird die Anzahl der OCPUs für das VM-Cluster auf 0 (null) skaliert. Dazu benötigen wir die VM-Cluster-ID und die neue OCPU-Menge (Skalierung auf 4 OCPUs).
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
Mit dem folgenden Befehl können Sie die JSON-Eingabedatei verwenden.
oci db vm-cluster update --from-json file://vm-cluster_update.json
Verwandte Links
-
Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (OCI-CLI)
-
Oracle Cloud Infrastructure-Befehlszeilenschnittstelle - Befehlsreferenz
Bestätigungen
- Autoren - Jens Ejvinsson (Exadata Cloud@Customer Black Belt), Zsolt Szokol (Exadata Cloud@Customer Black Belt)
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.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38689-01
Copyright ©2025, Oracle and/or its affiliates.