Utilizza l'interfaccia a riga di comando di Oracle Cloud Infrastructure per gestire Oracle Exadata Database Service on Cloud@Customer
Introduzione
Oracle Cloud Infrastructure Command Line Interface (OCI CLI) è un ottimo strumento per gestire le tue risorse in OCI, incluse le risorse Oracle Exadata Database Service on Cloud@Customer. OCI CLI ti consente di orchestrare e automatizzare in modo semplice ed efficiente le operazioni OCI. Poiché l'interfaccia CLI OCI chiama l'API REST OCI, ciò significa che l'interfaccia CLI OCI e l'API REST OCI sono compatibili anche se la sintassi è diversa. Puoi utilizzare l'interfaccia CLI OCI durante lo sviluppo delle automazioni API REST OCI per prove ed errori e quindi distribuire le tue automazioni con meno sforzo.
Questa è una serie in due parti, in cui in questa prima parte ti stiamo introducendo alle nozioni di base dell'interfaccia CLI OCI, mentre nella seconda parte ci stiamo concentrando maggiormente sui comandi e sui flussi di lavoro specifici di Oracle Exadata Database Service on Cloud@Customer.
Nota: l'interfaccia CLI OCI è necessaria anche quando si utilizza il ridimensionamento dinamico con il plugin remoto, ma il ridimensionamento dinamico stesso non sarà coperto in questa esercitazione.
Obiettivi
-
Installare OCI CLI.
-
Utilizzare la formattazione dell'output per filtrare e formattare gli output dei comandi in base alle proprie esigenze.
-
Utilizzare l'assistenza di input per semplificare l'uso dell'interfaccia CLI OCI.
Prerequisiti
-
Accedi a una tenancy OCI con un'infrastruttura Oracle Exadata Database Service on Cloud@Customer.
-
Utente creato nella tenancy, in un gruppo con un criterio che concede le autorizzazioni desiderate.
-
Versione supportata dell'ambiente Python installato in un sistema operativo (OS) supportato con accesso alla tenancy OCI. Per ulteriori informazioni, vedere Versioni Python supportate e sistemi operativi.
-
Una coppia di chiavi utilizzata per firmare le richieste API, con la chiave pubblica caricata in Oracle.
Task 1: installare l'interfaccia CLI OCI
OCI CLI si basa sul kit SDK (Software Development Kit) OCI per Python ed è eseguito su Mac, Windows o Linux. Il codice Python effettua chiamate alle API OCI per fornire la funzionalità implementata per i vari servizi, tra cui Oracle Exadata Database Service on Cloud@Customer e Oracle Autonomous Database on Exadata Cloud@Customer.
-
Scaricare l'interfaccia CLI OCI per il sistema operativo da qui: Repository OCI CLI GitHub.
-
Seguire le istruzioni di installazione indicate nel sistema operativo.
-
Eseguire il comando seguente per verificare l'installazione.
$ oci --version
-
Impostare una configurazione utilizzando la finestra di dialogo di impostazione che contiene le credenziali necessarie per l'utilizzo di OCI.
$ oci setup config
-
Verificare il file di configurazione.
Ad esempio:
[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
-
Eseguire il comando seguente per controllare la connettività, che mostrerà lo spazio di nomi della tenancy.
$ oci os ns get
-
Eseguire il comando seguente per elencare i compartimenti disponibili.
$ oci iam compartment list
Questa operazione genererà la seguente risposta JSON:
{ "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" } ] }
Nota: l'output è stato troncato per mostrare solo il primo compartimento.
-
Eseguire il comando seguente per elencare tutte le richieste di lavoro in un compartimento.
$ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
Utilizzare la formattazione di output per filtrare e formattare gli output dei comandi in base alle proprie esigenze
Come hai visto negli esempi precedenti, la risposta JSON dei comandi CLI OCI può essere ampia, difficile da seguire e non facile da leggere.
Al prompt dei comandi in Linux, ad esempio, è sempre possibile reindirizzare l'output a strumenti di alimentazione come grep per filtrare la risposta.
Utilizzare il comando seguente per elencare tutti i cluster VM in un compartimento specifico e filtrare per id
.
$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"
Questo tentativo genererà la risposta seguente:
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
Tuttavia, OCI CLI ha una funzionalità di query integrata con il parametro --query
, in cui è possibile specificare i campi per i quali si desidera eseguire una query.
-
Eseguire il comando seguente con il parametro
--query
.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
La risposta JSON sarà:
[ [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
È possibile specificare facilmente campi aggiuntivi dietro
--query
per creare una query più complessa.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
La risposta JSON sarà:
[ [ "fraexaclu1-uvlkz", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "fraexaclu2-2uyfk", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
È possibile ottenere un output più intuitivo utilizzando il parametro della tabella
--output
.$oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
La risposta sarà:
+----------------------------------------------------------------------------------------------------------------------+ | Column1 | Column2 | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
-
È inoltre possibile specificare le intestazioni per le colonne utilizzando il parametro
--query
.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
La risposta sarà:
+----------------------------------------------------------------------------------------------------------------------+ | Hostname | OCID | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
Nota: è importante comprendere la correlazione tra la sintassi utilizzata con il parametro
--query
e la risposta JSON. I comandi secondari dell'interfaccia CLI OCI comelist
in genere restituiscono molti risultati, mentre i comandi secondari dell'interfaccia CLI OCI comeget
restituiscono un solo risultato.-
Dove la risposta JSON mostra che i dati sono una lista o un array come specificato da un
[
.[opc@jens-oci-1 ~]$ oci db vm-cluster list { "data": [ {
Quindi la sintassi della query è simile alla seguente:
--query "data[].[ field1 , field2 ]"
-
Dove la risposta JSON mostra che i dati sono un singolo oggetto.
[opc@jens-oci-1 ~]$ oci db vm-cluster get { "data": {
Quindi la sintassi del comando
get
è simile alla seguente:--query "data.[ field1 , field2 ]"
-
Utilizzare l'assistenza di input per semplificare l'uso dell'interfaccia CLI OCI
Esistono diversi modi per ottenere assistenza di input con l'interfaccia CLI OCI sia per casi d'uso ad hoc che automatizzati.
-
Uso delle variabili di ambiente:
È possibile utilizzare le variabili di ambiente per memorizzare i valori dei parametri che vengono passati all'interfaccia CLI OCI.
Ad esempio, si potrebbe voler utilizzare
$T
per un OCID tenancy e$C
per un OCID compartimento.T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
È possibile utilizzarlo nei comandi CLI OCI come riportato di seguito.
$ oci work-requests work-request list --compartment-id $C
-
Uso di
--help
:È sempre possibile utilizzare
--help
per ottenere ulteriori informazioni sul comando. Questa operazione è applicabile a tutti i livelli nella struttura di comandi dell'interfaccia CLI OCI.Ad esempio:
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
Di seguito è riportato l'esempio di risposta del comando
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...
-
Utilizzo dei profili nel file di configurazione principale:
Quando si imposta l'interfaccia CLI OCI utilizzando la finestra di dialogo di impostazione, viene creato un file di configurazione principale che è il percorso elencato nell'output. Su Linux e Unix il file di configurazione principale si trova su
/home/opc/.oci/config
.Esempio di file di configurazione principale:
[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
Nell'esempio precedente, il profilo predefinito è stato creato con l'utente, la tenancy e l'area definiti. Quando si utilizza la riga di comando senza specificare i parametri, i valori predefiniti verranno utilizzati dal profilo. Se si desidera visualizzare i risultati al di fuori dei valori definiti nel file di profilo, è possibile specificare in modo esplicito i valori nella riga di comando.
È inoltre possibile creare più profili nel file di configurazione principale.
[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
È possibile fare riferimento al profilo predefinito con il comando seguente.
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
Uso dei file di configurazione runtime:
Quando si desidera semplificare ulteriormente la selezione tra aree, compartimenti, cluster VM e così via, è possibile specificare i profili con queste informazioni in un secondo file di configurazione runtime facoltativo. Il file di configurazione runtime sta completando il file di configurazione principale. È possibile specificare i valori predefiniti per i parametri della riga di comando nel file di configurazione runtime.
È possibile creare un file di configurazione runtime con il comando seguente.
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
È possibile completare i profili nel file di configurazione principale e aggiungere ulteriori dettagli sul profilo alla fine del file di configurazione runtime.
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
È possibile specificare questi profili definiti all'esecuzione del comando con il comando seguente.
$ 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 | +------------+------------------------------------------------------------------------------------------------------+
-
Genera file di input JSON comando completo:
Il file di input JSON del comando completo viene utilizzato con il parametro
--from-json file://<json file name>
per specificare tutti i parametri per il comando. Per rendere questo fattibile c'è un parametro chiamato--generate-full-command-json-input
che creerà un file JSON con tutti i parametri per quel comando.Utilizzare il comando seguente per generare un file JSON con il nome file
vm-cluster_update.json
.oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
È possibile modificare questo file di input JSON e conservare solo i parametri relativi al comando che si desidera eseguire. In questo esempio, ridimensioneremo il numero di OCPU per il cluster VM, che era pari a 0 (zero), e per farlo avremo bisogno dell'ID cluster VM e della nuova quantità di OCPU (ridimensionamento a 4 OCPU).
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
Utilizzare il comando seguente per utilizzare il file di input JSON.
oci db vm-cluster update --from-json file://vm-cluster_update.json
Collegamenti correlati
-
Interfaccia a riga di comando di Oracle Cloud Infrastructure (OCI CLI)
-
Riferimento ai comandi dell'interfaccia a riga di comando di Oracle Cloud Infrastructure
Conferme
- Autori - Jens Ejvinsson (Exadata Cloud@Customer Black Belt), Zsolt Szokol (Exadata Cloud@Customer Black Belt)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38693-01
Copyright ©2025, Oracle and/or its affiliates.