Uso de Cloud Shell

En esta sección, se describe cómo utilizar Cloud Shell.

Introducción a Cloud Shell

Puede acceder a Cloud Shell de dos formas:

  • Mediante la consola de OCI
  • A través del botón 'Try It' (Probar) que aparece en muchos ejemplos de código y líneas de comandos a lo largo de la documentación
Nota

Cloud Shell utiliza el OCID de su usuario para crear el directorio raíz. Si tiene varias cuentas en un arrendamiento (por ejemplo, tiene una cuenta de usuario federada y no federada), obtendrá un directorio raíz de Cloud Shell independiente y único para cada cuenta.

Para acceder a Cloud Shell mediante la consola:

  1. Conéctese a la consola.
  2. Haga clic en el icono de Cloud Shell/Code Editor en la cabecera de la consola y seleccione Cloud Shell en el menú desplegable. Tenga en cuenta que la CLI de OCI que se ejecuta en Cloud Shell ejecutará comandos con la región seleccionada en el menú de selección Región de la consola cuando se inició Cloud Shell.

Menú de inicio de Cloud Shell

Esto muestra Cloud Shell en un "cajón" en la parte inferior de la consola:

Ejemplo de cajón de Cloud Shell

Puede utilizar los iconos de la esquina superior derecha de la ventana de Cloud Shell para minimizar, maximizar, reiniciar y cerrar la sesión de Cloud Shell.

Para mover el foco fuera de Cloud Shell mediante el teclado, utilice Ctrl-ESCAPE.

Nota

Para las operaciones del portapapeles, los usuarios de Windows pueden utilizar Ctrl-C o Ctrl-Insertar para copiar y Mayús-Insertar o Ctrl-V para pegar. Para los usuarios de Mac OS, utilice Cmd-C para copiar y Cmd-V para pegar.

Para acceder a Cloud Shell a través del botón Try It:

Muchos ejemplos de código y comandos de la documentación de OCI incluyen un botón Try It. Este botón copiará el ejemplo en el portapapeles y abrirá una sesión de Cloud Shell para que pueda probarlo.

Cloud Shell incluye la CLI de OCI autenticada previamente, por lo que no es necesario realizar ninguna configuración antes de empezar a utilizarla.

Inténtelo con los comandos siguientes:

oci os ns get
oci iam compartment list

Interacción con un cluster de OKE desde Cloud Shell

Siga las instrucciones de Configuración del acceso de Cloud Shell a los clusters para lo siguiente:

  1. Configure un archivo kubeconfig de OKE para utilizarlo con Cloud Shell:
    1. Seleccione un cluster.
    2. Haga clic en el botón Acceder al cluster.
    3. Haga clic en Acceso a Cloud Shell.
    4. Haga clic en Iniciar Cloud Shell para mostrar la ventana de Cloud Shell.
    5. En la ventana de Cloud Shell, ejecute el comando de la CLI de Oracle Cloud Infrastructure para configurar el archivo kubeconfig y guardarlo en una ubicación accesible para kubectl. Por ejemplo:

      $ 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. Verifique que kubectl está disponible y que se puede conectar al cluster desde la ventana de Cloud Shell introduciendo el siguiente comando en esta ventana:

    $ kubectl get nodes

Transferencia de archivos

Puede transferir archivos desde y hacia Cloud Shell con las siguientes limitaciones:
  • Solo puede seleccionar un archivo al mismo tiempo para transferirlo con el cuadro de diálogo Transferencia de archivos, pero puede seleccionar varios archivos para transferirlos mediante la función de arrastrar y soltar.
  • No puede transferir directorios.
  • El tamaño máximo de archivo es de 4 GB.
  • Los permisos de archivo no se conservan en los archivos transferidos.
  • Se registran los nombres de los archivos. No utilice información de identificación personal (PII) en los nombres de archivo.
Para cargar un archivo en Cloud Shell mediante la función de arrastrar y soltar:
  1. Arrastre uno o más archivos a la ventana de Cloud Shell.

Para cargar un archivo en Cloud Shell mediante el menú:

  1. Haga clic en el menú de Cloud Shell en la parte superior izquierda de la ventana de Cloud Shell y seleccione Cargar. Aparecerá el cuadro de diálogo Carga de archivos.
  2. Arrastre y suelte un archivo o haga clic en seleccionar desde su equipo.
    Nota

    El cuadro de diálogo Transferencia de archivos solo soporta la selección de un archivo al mismo tiempo para la transferencia.
  3. Haga clic en el botón Cargar.
  4. Aparecerá el cuadro de diálogo Transferencia de archivos.
    1. Las transferencias de archivos en curso se muestran con una barra de progreso
    2. Puede cancelar una transferencia de archivo en curso haciendo clic en la X situada junto a la barra de progreso del archivo.
    3. Las transferencias de archivos completadas se muestran con una marca de selección verde
    4. Puede ocultar el cuadro de diálogo Transferencia de archivos haciendo clic en Ocultar.
    5. Puede ver el cuadro de diálogo Transferencia de archivos en cualquier momento seleccionando Transferencias de archivos en el menú de Cloud Shell

Para descargar un archivo desde Cloud Shell:

  1. Haga clic en el menú de Cloud Shell situado en la parte superior izquierda de la ventana de Cloud Shell y seleccione Descargar. Aparecerá el cuadro de diálogo Descarga de archivo:
  2. Introduzca el nombre del archivo de su directorio raíz que desea descargar.
    Nota

    Solo puede descargar archivos del directorio raíz.
  3. Haga clic en el botón Descargar.
  4. Aparecerá el cuadro de diálogo Transferencia de archivos.
    1. Las transferencias de archivos en curso se muestran con una barra de progreso
    2. Puede cancelar una transferencia de archivo en curso haciendo clic en la X situada junto a la barra de progreso del archivo.
    3. Las transferencias de archivos completadas se muestran con una marca de selección verde
    4. Puede ocultar el cuadro de diálogo Transferencia de archivos haciendo clic en Ocultar.
    5. Puede ver el cuadro de diálogo Transferencia de archivos en cualquier momento seleccionando Transferencias de archivos en el menú de Cloud Shell

Personalización de la configuración de la CLI de OCI de Cloud Shell

Cloud Shell incluye una CLI de OCI autenticada previamente, que se refresca y aprovisiona para el usuario cuando abre una nueva instancia de Cloud Shell. La ubicación y el token de configuración de OCI están fuera del directorio raíz del usuario, en /etc/oci. Por ejemplo:


            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 ubicación del archivo de configuración, el tipo de autenticación de la CLI de OCI y la opción de perfil se especifican con variables de entorno:

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

Para personalizar la CLI de OCI, puede crear un archivo RC de CLI de OCI y colocarlo en el directorio local .oci:

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

Para obtener más información sobre la configuración de la CLI de OCI, consulte Configuración de la CLI.

Gestión de regiones de Cloud Shell

Cloud Shell utiliza el archivo de configuración de la CLI y variables ENV para determinar con qué región interactúa la CLI de OCI. El archivo de configuración de la CLI de OCI (especificado por la variable de entorno OCI_CLI_CONFIG_FILE) contiene los perfiles de CLI para Cloud Shell. Cada región es su propio perfil de CLI, y el perfil actual se especifica mediante la variable de entorno OCI_CLI_PROFILE.

Por ejemplo, si abre Cloud Shell desde la consola con "Este de EE. UU. (Ashburn)" seleccionado en la lista desplegable de la región de la consola, Cloud Shell se abrirá con OCI_CLI_PROFILE definido en us-ashburn-1.

Nota

No hay ningún valor de perfil [DEFAULT] en Cloud Shell porque la región seleccionada cambia según la configuración de la consola cuando se abre Cloud Shell.

Si desea personalizar la configuración de la CLI de OCI en Cloud Shell, puede utilizar un archivo de configuración de CLI de OCI. Por ejemplo, para definir un compartimento por defecto en el archivo de configuración bajo el perfil de región adecuado en el archivo RC. Para nuestro ejemplo "us-ashburn-1", puede agregar un valor de compartimento por defecto como el siguiente:

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

Restablecimiento del entorno de Cloud Shell

Puede utilizar la herramienta csreset para restablecer el entorno de Cloud Shell a su estado por defecto. Puede restablecer la configuración del perfil bash y emacs, o puede suprimir todos los datos en el directorio raíz y restablecer la configuración de bash y emacs.

Para restablecer los archivos bash

Puede utilizar la opción --bashfiles (o -b) para restablecer los archivos $ HOME/.bashrc, $ HOME/.bash_profile, $ HOME/.bash_logout y $ HOME/.emacs a sus valores por defecto:

csreset --bashfiles

o

csreset -b

Para restablecer todo

Puede utilizar la opción --all (o -a) para borrar todos los datos del directorio $HOME y restablecer los archivos $HOME/.bashrc, $HOME/.bash_profile, $HOME/.bash_logout y $HOME/.emacs a sus valores por defecto:

csreset --all

o

csreset -a

Mostrar la ayuda

Para mostrar las opciones de sintaxis, utilice la opción --help o -h:

csreset -h

o

csreset --help

Copia de seguridad y restauración del directorio de inicio de Cloud Shell mediante Object Storage

Puede archivar y realizar una copia de seguridad del contenido del directorio de inicio de Cloud Shell en un cubo de Object Storage.

Nota

Si bien Cloud Shell proporciona persistencia entre sesiones, el servicio no proporciona la capacidad de restaurar archivos que el usuario pueda haber suprimido involuntariamente. El servicio tampoco proporciona recuperación ante desastres para los datos incluidos en el directorio de inicio. Si los datos son críticos, considere la posibilidad de crear copias de seguridad entre regiones.

Realizar una copia de seguridad del directorio de inicio de Cloud Shell en Object Storage

  1. Cree un cubo que contenga la copia de seguridad en Object Storage (también puede utilizar un cubo existente). Para obtener información sobre cómo trabajar con cubos en Object Storage, consulte Cubos de Object Storage.
    Nota

    Para buscar el espacio de nombres predeterminado de Object Storage para su tenencia, puede ejecutar el comando: oci os ns get.
  2. Ejecute el siguiente comando desde un indicador de Cloud Shell. Asegúrese de que los valores de OCI_CS_USER_BACKUPS_BUCKET_NAME y OCI_CS_USER_BACKUPS_NAMESPACE estén definidos en los valores adecuados para la copia de seguridad:
    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. Verifique que todos los comandos se hayan completado sin errores. Puede ejecutar el siguiente comando para confirmar que el archivo de copia de seguridad existe en Object Storage y tiene el tamaño esperado:
    oci os object head --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $FILENAME

Restaurar el directorio de inicio de Cloud Shell desde Object Storage

  1. Busque el nombre del objeto con la copia de seguridad y el nombre del cubo donde se encuentra. Necesitará estos valores como parámetros para los siguientes comandos. Para obtener información sobre Object Storage, consulte la documentación de Object Storage.
  2. Ejecute los siguientes comandos desde un indicador de Cloud Shell. Asegúrese de sustituir las variables OCI_CS_USER_BACKUPS_BUCKET_NAME, OCI_CS_USER_BACKUPS_OBJECT_NAME y OCI_CS_USER_BACKUPS_NAMESPACE por los valores adecuados.
    Nota

    Para buscar el espacio de nombres predeterminado de Object Storage para su tenencia, puede ejecutar el comando: oci os ns get.
    Nota

    El comando tar no sobrescribe los archivos existentes. Si desea sobrescribir los archivos existentes, elimine el parámetro --skip-old-files y añada el parámetro --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. Compruebe la salida del comando y los archivos del directorio de inicio para verificar que todos los comandos se hayan completado sin errores.

Utilización de las versiones de Python

Cloud Shell utiliza Python 3. Para ejecutar python, escriba python en el símbolo del sistema:
python

Trabajar con versiones de kubectl

Cloud Shell se proporciona preinstalado con cada versión de Kubernetes soportada actualmente por OKE. Estas versiones se instalan en /usr/local/bin/kubectl-{version} (por ejemplo: /usr/local/bin/kubectl-v1.17.13) y la ruta de acceso al binario se incluye en la variable de entorno PATH.

Por defecto, la ejecución de kubectl en la sesión de Cloud Shell llamará a la segunda versión más reciente instalada de kubectl. Lo hacemos para optimizar la compatibilidad en función de la política de sesgo de versión de Kubernetes.

Si desea utilizar una versión de kubectl distinta a la versión por defecto, puede llamar al binario específico de la versión.

Por ejemplo:
kubectl-v1.17.13 get services
Otra opción es crear un alias para apuntar kubectl hacia una versión específica.
Por ejemplo:
alias kubectl=kubectl-v1.17.13
Nota

Si desea que el alias se mantenga entre sesiones de Cloud Shell, agregue la definición de alias al archivo ~/.bashrc.

Gestión de tiempos de ejecución de lenguaje

Puede utilizar el comando csruntimectl para ver y gestionar los entornos de ejecución de lenguaje que utiliza Cloud Shell para la ejecución de programas.
Nota

El comando csruntimectl actualmente solo soporta Java.
Para ver qué versiones de un tiempo de ejecución están soportadas actualmente en Cloud Shell, utilice la opción list. Por ejemplo:
csruntimectl java list
Puede utilizar la opción set para especificar qué versión de ejecución utiliza Cloud Shell. Por ejemplo, para definir el tiempo de ejecución de Java:
csruntimectl java set oraclejdk-11

Tenga en cuenta que esta configuración se mantiene en las sesiones de Cloud Shell.

Utilice la opción help para mostrar una lista de las opciones soportadas actualmente:
csruntimectl help

Obtención de la dirección IP pública para una sesión de Cloud Shell

Puede determinar la dirección IP pública de su sesión de Cloud Shell. Esta información puede resultar útil en varias situaciones, como la configuración del acceso a recursos externos desde la sesión de Cloud Shell.
Nota

La dirección IP pública de Cloud Shell es dinámica. No cambiará durante una sesión de Cloud Shell, pero puede cambiar al iniciar una nueva sesión.
Para determinar la dirección IP pública de su sesión de Cloud Shell, puede ejecutar el siguiente comando:
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Nota

Este comando devuelve la dirección IP pública del gateway de NAT asociado a Cloud Shell. Dado que Cloud Shell no está asociado a un gateway de Internet, no puede utilizar esta dirección IP para acceder a un servicio web que se ejecute en Cloud Shell.