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

Prerequisiti

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.

  1. Scaricare l'interfaccia CLI OCI per il sistema operativo da qui: Repository OCI CLI GitHub.

  2. Seguire le istruzioni di installazione indicate nel sistema operativo.

  3. Eseguire il comando seguente per verificare l'installazione.

    $ oci --version
    
  4. Impostare una configurazione utilizzando la finestra di dialogo di impostazione che contiene le credenziali necessarie per l'utilizzo di OCI.

    $ oci setup config
    
  5. 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
    
  6. Eseguire il comando seguente per controllare la connettività, che mostrerà lo spazio di nomi della tenancy.

    $ oci os ns get
    
  7. 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.

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

  1. 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"
          ]
    ]
    
  2. È 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"
         ]
        ]	
    
  3. È 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 |
    +------------------+---------------------------------------------------------------------------------------------------+
    
  4. È 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 come list in genere restituiscono molti risultati, mentre i comandi secondari dell'interfaccia CLI OCI come get 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.

Conferme

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.