Utilizzo dell'immagine contenitore OCI CLI

In questa sezione viene descritto come installare e utilizzare OCI CLI Container Image.

L'immagine del contenitore CLI (Command Line Interface) di Oracle Cloud Infrastructure (OCI) è un'immagine Docker con gli strumenti CLI OCI preinstallati. In questa sezione viene descritto come installare e utilizzare OCI CLI Container Image.

Requisiti

Per utilizzare l'immagine del contenitore dell'interfaccia CLI OCI, è necessario disporre dei seguenti elementi:

  • Un motore di runtime dei container conforme agli standard, come Docker o Podman
  • Una tenancy di Oracle Cloud Infrastructure
  • Account utente nella tenancy che appartiene a un gruppo a cui sono stati assegnati i criteri appropriati per concedere le autorizzazioni necessarie.
  • Una coppia di chiavi utilizzata per firmare le richieste API, con la chiave pubblica caricata in Oracle. Solo l'utente che chiama l'API deve possedere la chiave privata. Per ulteriori informazioni, vedere Configurazione dell'interfaccia CLI.

Per esempi su come impostare un nuovo utente, gruppo, compartimento e criterio, vedere Aggiunta di utenti. Per un elenco di altri criteri OCI tipici, consulta la lista di criteri comuni.

Uso dell'immagine del contenitore OCI CLI

Per utilizzare l'immagine del contenitore, estrarre la versione più recente dal registro dei contenitori GitHub:
$ docker pull ghcr.io/oracle/oci-cli:latest
$ docker images
REPOSITORY                              TAG               IMAGE ID       CREATED        SIZE
ghcr.io/oracle/oci-cli                  latest            387639e80a9a   3 days ago     711MB
Prendere in considerazione l'applicazione di tag all'immagine come oci per renderla una sostituzione drop-in più semplice:
$ docker tag ghcr.io/oracle/oci-cli:latest oci
$ docker images oci
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
oci          latest    387639e80a9a   3 days ago   711MB
                   
$ docker run -v "$HOME/.oci:/oracle/.oci" oci os ns get
{
    "data": "demo-tenancy"
}
Per maggiore comodità, è possibile creare un alias shell che esegue il contenitore per voi:
$ alias oci='docker run --rm -it -v "$HOME/.oci:/oracle/.oci" oci'
$ oci os ns get
{
    "data": "demo-tenancy"
}

Autenticazione della chiave di firma API

Si tratta del metodo di autenticazione predefinito utilizzato da tutti gli SDK OCI e dall'interfaccia CLI OCI. Per utilizzare questo metodo, attivare una posizione sul sistema host nella directory /oracle/.oci all'interno del contenitore.

Se in precedenza è stata configurata l'interfaccia CLI OCI nel computer host, il modo più semplice per fornire l'accesso alla chiave di firma API è mappare la directory $HOME/.oci a /oracle/.oci/ all'interno del contenitore.

Ad esempio:
$ docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli os ns get
{
    "data": "example"
}

È inoltre possibile passare la variabile di ambiente OCI_CLI_CONFIG_FILE per utilizzare una posizione diversa per il file config dell'interfaccia CLI OCI.

Nota

Assicurarsi che il campo key_file in $HOME/.oci/config utilizzi il carattere ~ in modo che il percorso venga risolto sia all'interno che all'esterno del contenitore, ad esempio: key_file=~/.oci/oci_api_key.pem.
Se l'interfaccia CLI OCI non è stata configurata, creare la directory $HOME/.oci:
mkdir $HOME/.oci
Successivamente, avviare il processo di impostazione interattiva dell'interfaccia CLI OCI:
docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli setup config

Per ulteriori informazioni, vedere Impostazione del file di configurazione.

Autenticazione token sessione

Per utilizzare l'autenticazione basata su token, mappare la porta 8181 al contenitore:
docker run --rm -it \
   -v "$HOME/.oci:/oracle/.oci" \
   -p 8181:8181 \
   ghcr.io/oracle/oci-cli session authenticate

Per ulteriori informazioni, vedere Autenticazione basata su token per l'interfaccia CLI.

Autenticazione principal dell'istanza

Per abilitare l'autenticazione del principal dell'istanza, è possibile utilizzare il parametro della riga di comando --auth instance_principal:
docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
È inoltre possibile passare la variabile di ambiente OCI_CLI_AUTH:
docker run --rm -it -e OCI_CLI_AUTH=instance_principal ghcr.io/oracle/oci-cli os ns get

Se è stato creato un alias shell, aggiungerlo alla definizione alias.

Per ulteriori informazioni, vedere Metodi di autenticazione SDK OCI.

Accesso file locale

Il modo più semplice per consentire all'interfaccia CLI OCI in esecuzione all'interno del contenitore di accedere ai file sull'host è quello di associare il MOUNT di una directory dall'host al contenitore.

Nell'esempio seguente, la directory $HOME/scratch viene attivata come bind come /oracle/scratch nel contenitore in modo che i file all'interno di tale directory possano essere caricati in blocco nello storage degli oggetti OCI utilizzando l'interfaccia CLI OCI:
docker run --rm -it \
    -v "$HOME/.oci:/oracle/.oci" \
    -v "$HOME/scratch:/oracle/scratch" \
    ghcr.io/oracle/oci-cli os object bulk-upload -ns <namespace> -bn <bucket name> --src-dir /oracle/scratch/