Uso di Cloud Shell

In questa sezione viene descritto come utilizzare Cloud Shell.

Guida introduttiva a Cloud Shell

È possibile accedere a Cloud Shell in due modi:

  • Tramite OCI Console
  • Tramite il pulsante 'Prova' che appare su molti esempi di riga di comando e codice in tutta la documentazione
Nota

Cloud Shell utilizza l'OCID utente per creare la directory home. Se si dispone di più account in una tenancy (ad esempio, si dispone di un account utente federato e non federato), si otterrà una directory home Cloud Shell separata e univoca per ogni account.

Per accedere a Cloud Shell tramite la console:

  1. Eseguire il login alla console.
  2. Fare clic sull'icona Cloud Shell/Editor di codice nell'intestazione della console e selezionare Cloud Shell dal menu a discesa. Tenere presente che l'interfaccia CLI OCI in esecuzione in Cloud Shell eseguirà i comandi in base all'area selezionata nel menu di selezione Area della console all'avvio di Cloud Shell.

Menu di avvio di Cloud Shell

Viene visualizzata la Cloud Shell in un "cassetto" nella parte inferiore della console:

Esempio di cassetto shell cloud

È possibile utilizzare le icone nell'angolo superiore destro della finestra Cloud Shell per ridurre, ingrandire, riavviare e chiudere la sessione Cloud Shell.

Per spostare l'evidenziazione da Cloud Shell utilizzando la tastiera, usare Ctrl-ESCAPE.

Nota

Per le operazioni degli Appunti, gli utenti di Windows possono utilizzare Ctrl-C o Ctrl-Insert per copiare e Maiusc-Insert o Ctrl-V per incollare. Per gli utenti Mac OS, utilizzare Cmd-C per copiare e Cmd-V per incollare.

Per accedere a Cloud Shell tramite il pulsante Prova:

Molti esempi di codice e comandi nella documentazione OCI includono un pulsante Prova. Questo pulsante copierà l'esempio negli appunti e aprirà una sessione di Cloud Shell in modo da poter provare l'esempio.

Cloud Shell viene fornito con l'interfaccia CLI OCI preautenticata, pertanto non è necessaria alcuna impostazione prima di poter iniziare a utilizzarla.

Provalo con i seguenti comandi:

oci os ns get
oci iam compartment list

Interagisci con un cluster OKE da Cloud Shell

Seguire le istruzioni riportate in Impostazione dell'accesso Cloud Shell ai cluster per effettuare le operazioni riportate di seguito.

  1. Impostare un file kubeconfig OKE da utilizzare con Cloud Shell:
    1. Selezionare un cluster.
    2. Selezionare il pulsante Cluster di accesso.
    3. Selezionare Accesso a Cloud Shell.
    4. Selezionare Avvia Cloud Shell per visualizzare la finestra Cloud Shell.
    5. Nella finestra Cloud Shell eseguire il comando CLI di Oracle Cloud Infrastructure per impostare il file kubeconfig e salvarlo in una posizione accessibile a kubectl. Ad esempio:

      $ oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.phx.aaaaaaaaae... --file $HOME/.kube/config  --region us-phoenix-1 --token-version 2.0.0
  2. Verificare che kubectl sia disponibile e che possa connettersi al cluster dalla finestra Cloud Shell immettendo il comando seguente nella finestra Cloud Shell:

    $ kubectl get nodes

Trasferimento di file

È possibile trasferire i file da e verso Cloud Shell, con le seguenti limitazioni:
  • È possibile selezionare un solo file alla volta da trasferire con la finestra di dialogo Trasferimento file, ma è possibile selezionare più file da trasferire mediante il trascinamento della selezione.
  • Impossibile trasferire le directory.
  • La dimensione massima del file è 4 GB.
  • Le autorizzazioni file non vengono conservate sui file trasferiti.
  • I nomi file vengono registrati. Non utilizzare le informazioni di identificazione personale (PII) nei nomi file.
Per caricare un file in Cloud Shell mediante il trascinamento della selezione:
  1. Trascinare uno o più file nella finestra Cloud Shell.

Per caricare un file in Cloud Shell utilizzando il menu:

  1. Fare clic sul menu Cloud Shell nella parte superiore sinistra della finestra Cloud Shell e selezionare Carica. Verrà visualizzata la finestra di dialogo Caricamento file.
  2. Trascinare la selezione di un file o fare clic su seleziona dal computer.
    Nota

    La finestra di dialogo Trasferimento file supporta solo la selezione di un file alla volta da trasferire.
  3. Fare clic sul pulsante Carica.
  4. Viene visualizzata la finestra di dialogo Trasferimento file.
    1. I trasferimenti di file in corso vengono visualizzati con una barra di avanzamento
    2. È possibile annullare un trasferimento di file in corso facendo clic sulla X accanto alla barra di avanzamento del file
    3. I trasferimenti di file completati vengono visualizzati con un segno di spunta verde
    4. È possibile nascondere la finestra di dialogo Trasferimento file facendo clic su Nascondi.
    5. È possibile visualizzare la finestra di dialogo Trasferimento file in qualsiasi momento selezionando Trasferimenti file dal menu Cloud Shell.

Per scaricare un file da Cloud Shell:

  1. Fare clic sul menu Cloud Shell nella parte superiore sinistra della finestra Cloud Shell e selezionare Scarica. Viene aperta la finestra di dialogo Scaricamento file:
  2. Digitare il nome del file nella directory home che si desidera scaricare.
    Nota

    È possibile scaricare solo file dalla directory home.
  3. Fare clic sul pulsante Download.
  4. Viene visualizzata la finestra di dialogo Trasferimento file.
    1. I trasferimenti di file in corso vengono visualizzati con una barra di avanzamento
    2. È possibile annullare un trasferimento di file in corso facendo clic sulla X accanto alla barra di avanzamento del file
    3. I trasferimenti di file completati vengono visualizzati con un segno di spunta verde
    4. È possibile nascondere la finestra di dialogo Trasferimento file facendo clic su Nascondi.
    5. È possibile visualizzare la finestra di dialogo Trasferimento file in qualsiasi momento selezionando Trasferimenti file dal menu Cloud Shell.

Personalizzazione della configurazione dell'interfaccia CLI OCI Cloud Shell

Cloud Shell viene fornita con un'interfaccia CLI OCI preautenticata, aggiornata e di cui viene eseguito il provisioning per l'utente quando si apre una nuova Cloud Shell. La posizione e il token di configurazione OCI sono esterni alla home directory dell'utente, in /etc/oci. Ad esempio:


            example_user@cloudshell:~ (us-ashburn-1)$ ll /etc/oci
            total 20K
            drwxrwx---. 1 root oci 44 Oct 12 00:07 ./
            drwxr-xr-x. 1 root root 4.0K Oct 12 00:07 ../
            -rw-------. 1 jonathan_s oci 1.9K Jan 1 1970 config
            -rw-------. 1 jonathan_s oci 1.3K Jan 1 1970 delegation_token
            example_user@cloudshell:~ (us-ashburn-1)$

La posizione del file di configurazione, il tipo di autenticazione CLI OCI e la scelta del profilo sono specificati con le variabili di ambiente:

OCI_CLI_AUTH=instance_obo_user
            OCI_CLI_CONFIG_FILE=/etc/oci/config
            OCI_CLI_PROFILE=us-ashburn-1

Per personalizzare l'interfaccia CLI OCI, è possibile creare un file RC CLI OCI e inserirlo nella directory .OCI locale:

$ oci setup oci-cli-rc --file path/to/target/file

Per ulteriori informazioni sulla configurazione dell'interfaccia CLI OCI, vedere Configuring the CLI.

Gestione delle aree di Cloud Shell

Cloud Shell utilizza il file di configurazione dell'interfaccia CLI e le variabili ENV per determinare l'area con cui interagisce l'interfaccia CLI OCI. Il file di configurazione dell'interfaccia CLI OCI (specificato dalla variabile di ambiente OCI_CLI_CONFIG_FILE) contiene i profili CLI per Cloud Shell. Ogni area è il proprio profilo CLI e il profilo corrente viene specificato tramite la variabile di ambiente OCI_CLI_PROFILE.

Ad esempio, se si apre Cloud Shell dalla console con l'opzione "US East (Ashburn)" selezionata nell'elenco a discesa dell'area Console, Cloud Shell verrà aperta con l'opzione OCI_CLI_PROFILE impostata su us-ashburn-1.

Nota

In Cloud Shell non è presente alcun valore di profilo [DEFAULT] perché l'area selezionata cambia a seconda della configurazione della console all'apertura di Cloud Shell.

Se si desidera personalizzare le impostazioni CLI OCI in Cloud Shell, è possibile utilizzare un file di configurazione dell'interfaccia CLI OCI. Ad esempio, per impostare un compartimento predefinito nel file di configurazione nel profilo area appropriato nel file RC. Per il nostro esempio "us-ashburn-1", è possibile aggiungere un'impostazione di compartimento predefinita come questa:

[COMPARTMENT DEFAULTS]
[us-ashburn-1]
compartment-id = ocid1.compartment.oc1..xxxxxxxx

Reimpostazione dell'ambiente Cloud Shell

È possibile utilizzare lo strumento csreset per ripristinare lo stato predefinito dell'ambiente Cloud Shell. Puoi reimpostare solo le impostazioni del tuo profilo bash ed emacs, oppure puoi eliminare tutti i dati nella tua home directory e reimpostare le impostazioni bash ed emacs.

Per reimpostare i file bash

È possibile utilizzare l'opzione --bashfiles (o -b) per ripristinare i valori predefiniti dei file $HOME/.bashrc, $HOME/.bash_profile, $HOME/.bash_logout e $HOME/.emacs:

csreset --bashfiles

o

csreset -b

Per ripristinare tutto

Per cancellare tutti i dati nella directory $HOME, è necessario cancellare tutti i file creati a causa dell'esecuzione di qualsiasi applicazione o strumento, ad esempio se è stato eseguito podman pull hello-world, quindi utilizzare podman image rm per rimuovere i file creati da podman nella directory $HOME/.local e quindi eseguire csreset -a.

Visualizzazione della Guida

Per visualizzare le opzioni di utilizzo, utilizzare l'opzione --help o -h:

csreset -h

o

csreset --help

Backup e ripristino della directory home di Cloud Shell mediante lo storage degli oggetti

È possibile archiviare ed eseguire il backup del contenuto della directory home di Cloud Shell in un bucket nello storage degli oggetti.

Nota

Sebbene Cloud Shell fornisca persistenza tra le sessioni, il servizio non offre la possibilità di ripristinare i file che potrebbero essere stati eliminati inavvertitamente dall'utente. Inoltre, il servizio non fornisce il disaster recovery per i dati contenuti nella directory home. Se i tuoi dati sono fondamentali per te, considera la possibilità di creare backup tra più aree.

Per eseguire il backup della directory home di Cloud Shell nello storage degli oggetti

  1. Crea un bucket nello storage degli oggetti che conterrà il backup (puoi anche utilizzare un bucket esistente). Per informazioni su come utilizzare i bucket nello storage degli oggetti, vedere Bucket di storage degli oggetti.
    Nota

    Per trovare lo spazio di nomi di storage degli oggetti predefinito per la tenancy in uso, è possibile eseguire il comando: oci os ns get.
  2. Eseguire il comando seguente da un prompt Cloud Shell. Assicurarsi che i valori di OCI_CS_USER_BACKUPS_BUCKET_NAME e OCI_CS_USER_BACKUPS_NAMESPACE siano impostati sui valori appropriati per il backup:
    OCI_CS_USER_BACKUPS_BUCKET_NAME="MyCloudShellBackupsBucket" 
    OCI_CS_USER_BACKUPS_NAMESPACE="NamespaceForBackupsBucket"
    FILENAME=CloudShellHomeDirectoryBackup-$OCI_REGION-$OCI_CS_USER_OCID-$(date --iso-8601=seconds).tar.gz 
    TEMP_TAR_LOCATION=/tmp
    tar -zcvf $TEMP_TAR_LOCATION/$FILENAME ~/
    echo "Creating backup object: $FILENAME in bucket: $OCI_CS_USER_BACKUPS_BUCKET_NAME in namespace: $OCI_CS_USER_BACKUPS_NAMESPACE"
    oci os object put --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --file $TEMP_TAR_LOCATION/$FILENAME
    rm $TEMP_TAR_LOCATION/$FILENAME 
  3. Verificare che tutti i comandi siano stati completati senza errori. È possibile eseguire il comando seguente per confermare che il file di backup esiste nello storage degli oggetti e ha la dimensione prevista:
    oci os object head --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $FILENAME

Per ripristinare la directory home di Cloud Shell dallo storage degli oggetti

  1. Trova il nome dell'oggetto con il backup e il nome del bucket in cui si trova. Questi valori sono necessari come parametri per i comandi riportati di seguito. Per informazioni sullo storage degli oggetti, consulta la documentazione sullo storage degli oggetti.
  2. Eseguire i comandi riportati di seguito da un prompt Cloud Shell. Sostituire le variabili OCI_CS_USER_BACKUPS_BUCKET_NAME, OCI_CS_USER_BACKUPS_OBJECT_NAME e OCI_CS_USER_BACKUPS_NAMESPACE con i valori appropriati.
    Nota

    Per trovare lo spazio di nomi di storage degli oggetti predefinito per la tenancy in uso, è possibile eseguire il comando: oci os ns get.
    Nota

    Il comando tar non sovrascrive i file esistenti. Per sovrascrivere i file esistenti, rimuovere il parametro --skip-old-files e aggiungere il parametro --overwrite.
    OCI_CS_USER_BACKUPS_BUCKET_NAME="MyCloudShellBackupsBucket"
    OCI_CS_USER_BACKUPS_OBJECT_NAME="CloudShellHomeDirectoryBackup-us-ashburn-1-ocid1.user...tar.gz"
    OCI_CS_USER_BACKUPS_NAMESPACE="NamespaceForBackupsBucket"
    TEMP_TAR_LOCATION=/tmp
    oci os object get --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $OCI_CS_USER_BACKUPS_OBJECT_NAME --file $TEMP_TAR_LOCATION/$OCI_CS_USER_BACKUPS_OBJECT_NAME
    tar --skip-old-files -xzvf $TEMP_TAR_LOCATION/$OCI_CS_USER_BACKUPS_OBJECT_NAME -C /
    rm -rf $TEMP_TAR_LOCATION/$OCI_CS_USER_BACKUPS_OBJECT_NAME
  3. Controllare l'output del comando e i file nella directory home per verificare che tutti i comandi siano stati completati senza errori.

Utilizzo delle versioni Python

Cloud Shell utilizza Python 3. Per eseguire python, digitare python al prompt dei comandi:
python

Utilizzo delle versioni kubectl

Cloud Shell è preinstallato con ogni versione di Kubernetes attualmente supportata da OKE. Queste versioni sono installate in /usr/local/bin/kubectl-{version} (ad esempio: /usr/local/bin/kubectl-v1.17.13) e il percorso del file binario è incluso nella variabile di ambiente PATH.

Per impostazione predefinita, l'esecuzione di kubectl nella sessione Cloud Shell richiamerà la seconda versione installata più recente di kubectl. Lo facciamo per ottimizzare la compatibilità in base al criterio di distorsione della versione di Kubernetes.

Se si desidera utilizzare una versione di kubectl diversa dalla versione predefinita, è possibile richiamare il file binario specifico della versione.

Ad esempio:
kubectl-v1.17.13 get services
Un'altra opzione è quella di creare un alias per puntare kubectl a una versione specifica.
Ad esempio:
alias kubectl=kubectl-v1.17.13
Nota

Se si desidera che l'alias rimanga tra le sessioni Cloud Shell, aggiungere la definizione alias al file ~/.bashrc.

Gestione dei runtime delle lingue

È possibile utilizzare il comando csruntimectl per visualizzare e gestire i runtime di lingua utilizzati da Cloud Shell per l'esecuzione del programma.
Nota

Il comando csruntimectl attualmente supporta Java e Python.
Per vedere quali versioni di un runtime sono attualmente supportate in Cloud Shell, utilizzare l'opzione list. Ad esempio:
csruntimectl java list
È possibile utilizzare l'opzione set per specificare la versione utilizzata da Cloud Shell runtime. Ad esempio, per impostare Java Runtime:
csruntimectl java set oraclejdk-11

Tenere presente che questa impostazione persiste nelle sessioni Cloud Shell.

Utilizzare l'opzione help per visualizzare un elenco delle opzioni attualmente supportate.
csruntimectl help

Recupero dell'indirizzo IP pubblico per una sessione Cloud Shell

È possibile determinare l'indirizzo IP pubblico della sessione Cloud Shell. Queste informazioni possono essere utili in diversi scenari, inclusa l'impostazione dell'accesso alle risorse esterne dalla sessione Cloud Shell.
Nota

L'indirizzo IP pubblico di Cloud Shell è dinamico. Non verrà modificata durante una sessione di Cloud Shell, ma può cambiare all'avvio di una nuova sessione.
È possibile determinare l'indirizzo IP pubblico della sessione Cloud Shell eseguendo il comando seguente:
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Nota

Questo comando restituisce l'indirizzo IP pubblico del gateway NAT associato a Cloud Shell. Poiché Cloud Shell non è associato a un gateway Internet, non è possibile utilizzare questo indirizzo IP per raggiungere un servizio Web in esecuzione su Cloud Shell.