Usando o Cloud Shell

Esta seção descreve como usar o Cloud Shell.

Conceitos Básicos do Cloud Shell

Você pode acessar o Cloud Shell de duas maneiras:

  • Pela Console do OCI
  • Pelo botão 'Try It' que aparece em muitas amostras de código e linha de comando em toda a documentação
Observação

O Cloud Shell usa o OCID do usuário para criar o diretório home. Se você tiver várias contas em uma tenancy (por exemplo, tiver uma conta de usuário federado e não federado), você obterá um diretório home do Cloud Shell distinto e exclusivo para cada conta.

Para acessar o Cloud Shell pela Console:

  1. Faça log-in na Console.
  2. Clique no ícone do Cloud Shell/Code Editor no cabeçalho da Console e selecione Cloud Shell no menu drop-down. Observe que a CLI do OCI em execução no Cloud Shell executará comandos na região selecionada no menu de seleção Região da Console quando o Cloud Shell foi iniciado.

Menu de inicialização do Cloud Shell

Isso exibe o Cloud Shell em uma "gaveta" na parte inferior da console:

Exemplo de gaveta do Cloud Shell

Você pode usar os ícones no canto superior direito da janela do Cloud Shell para minimizar, maximizar, reiniciar e fechar sua sessão do Cloud Shell.

Para mover o foco para fora do Cloud Shell usando o teclado, use Ctrl-ESCAPE.

Observação

Para operações da área de transferência, os usuários do Windows podem usar Ctrl-C ou Ctrl-Insert para copiar e Shift-Insert ou Ctrl-V para colar. Para usuários do Mac OS, use Cmd-C para copiar e Cmd-V para colar.

Para acessar o Cloud Shell por meio do botão Try It:

Muitas amostras de código e comando na documentação do OCI incluem um botão Try It. Esse botão copiará a amostra para a área de transferência e abrirá uma sessão do Cloud Shell para que você possa testar a amostra.

Seu Cloud Shell vem com a CLI do OCI pré-autenticada; por isso, não há configuração obrigatória para poder começar a usá-lo.

Tente com os seguintes comandos:

oci os ns get
oci iam compartment list

Interagir com um cluster do OKE no Cloud Shell

Siga as instruções em Configurando o Acesso a Clusters por meio do Cloud Shell para:

  1. Configurar um arquivo kubeconfig do OKE para uso com o Cloud Shell:
    1. Selecione um cluster.
    2. Clique no botão Acessar Cluster.
    3. Clique em Acesso por meio do Cloud Shell.
    4. Clique em Iniciar Cloud Shell para exibir a janela do Cloud Shell.
    5. Na janela do Cloud Shell, execute o comando da CLI do Oracle Cloud Infrastructure para configurar o arquivo kubeconfig e salve-o em um local acessível ao kubectl. Por exemplo:

      $ 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 se o kubectl está disponível e pode se conectar ao cluster da janela do Cloud Shell especificando o seguinte comando na janela do Cloud Shell:

    $ kubectl get nodes

Transferindo Arquivos

Você pode transferir arquivos de/para o Cloud Shell, com as seguintes limitações:
  • Você só pode selecionar um arquivo de cada vez para transferir com a caixa de diálogo Transferência de Arquivo, mas pode selecionar vários arquivos para transferir usando o recurso de arrastar e soltar.
  • Você não pode transferir diretórios.
  • O tamanho máximo do arquivo é 4 GB.
  • As permissões de arquivo não são mantidas nos arquivos transferidos.
  • Os nomes dos arquivos são registrados em log. Não use Informações de Identificação Pessoal (PII) em nomes de arquivo.
Para fazer upload de um arquivo para o Cloud Shell usando arrastar e soltar:
  1. Arraste um ou mais arquivos para a janela do Cloud Shell.

Para fazer upload de um arquivo para o Cloud Shell usando o menu:

  1. Clique no menu do Cloud Shell na parte superior esquerda da janela do Cloud Shell e selecione Fazer Upload. A caixa de diálogo Upload de Arquivo é exibida.
  2. Arraste e solte um arquivo ou clique em selecionar em seu computador.
    Observação

    A caixa de diálogo Transferência de Arquivos só suporta a seleção de um arquivo por vez para transferência.
  3. Clique no botão Fazer Upload.
  4. A caixa de diálogo Transferência de Arquivo é exibida.
    1. As transferências de arquivo em andamento são mostradas com uma barra de progresso
    2. Você pode cancelar uma transferência de arquivo em andamento clicando no X ao lado da barra de progresso do arquivo
    3. As transferências de arquivo concluídas são mostradas com uma marca de seleção verde
    4. Você pode ocultar a caixa de diálogo Transferência de Arquivos clicando em Ocultar
    5. Você pode exibir a caixa de diálogo Transferência de Arquivos a qualquer momento selecionando Transferências de Arquivos no menu do Cloud Shell

Para fazer download de um arquivo no Cloud Shell:

  1. Clique no menu do Cloud Shell na parte superior esquerda da janela do Cloud Shell e selecione Fazer Download. A caixa de diálogo Download de Arquivo é exibida:
  2. Digite o nome do arquivo no diretório home do qual deseja fazer download.
    Observação

    Você só pode fazer download de arquivos do diretório home.
  3. Clique no botão Fazer Download.
  4. A caixa de diálogo Transferência de Arquivo é exibida.
    1. As transferências de arquivo em andamento são mostradas com uma barra de progresso
    2. Você pode cancelar uma transferência de arquivo em andamento clicando no X ao lado da barra de progresso do arquivo
    3. As transferências de arquivo concluídas são mostradas com uma marca de seleção verde
    4. Você pode ocultar a caixa de diálogo Transferência de Arquivos clicando em Ocultar
    5. Você pode exibir a caixa de diálogo Transferência de Arquivos a qualquer momento selecionando Transferências de Arquivos no menu do Cloud Shell

Personalizando a Configuração da CLI do OCI Cloud Shell

O Cloud Shell vem com uma CLI do OCI pré-autenticada, que é atualizada e provisionada para o seu usuário quando você abre um novo Cloud Shell. O local e o token de configuração do OCI estão fora do diretório home do usuário, em /etc/oci. Por exemplo:


            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)$

O local do arquivo de configuração, o tipo de autenticação da CLI do OCI e a escolha do perfil são especificados com variáveis de ambiente:

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

Para personalizar a CLI do OCI, você pode criar um arquivo RC da CLI do OCI e colocá-lo no seu diretório .oci local:

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

Para obter mais informações sobre a configuração da CLI do OCI, consulte Configurando a CLI.

Gerenciando Regiões do Cloud Shell

O Cloud Shell usa o arquivo de configuração da CLI e as variáveis ENV para determinar com que região a CLI OCI está interagindo. O arquivo de configuração da CLI do OCI (especificado pela variável de ambiente OCI_CLI_CONFIG_FILE) contém os perfis da CLI do Cloud Shell. Cada região é seu próprio perfil da CLI e o perfil atual é especificado por meio da variável de ambiente OCI_CLI_PROFILE.

Por exemplo, se você abrir o Cloud Shell na Console com "US East (Ashburn)" selecionado na lista drop-down Região da Console, o Cloud Shell será aberto com o OCI_CLI_PROFILE definido como us-ashburn-1.

Observação

Não há valor de perfil [DEFAULT] no Cloud Shell porque a região selecionada muda dependendo da configuração da Console quando o Cloud Shell é aberto.

Se você quiser personalizar as definições da CLI do OCI no Cloud Shell, poderá usar um arquivo de configuração da CLI do OCI. Por exemplo, para definir um compartimento padrão em seu arquivo de configuração sob o perfil de região apropriado em seu arquivo RC. Para nosso exemplo "us-ashburn-1", você pode adicionar uma definição de compartimento padrão como esta:

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

Redefinindo o Ambiente do Cloud Shell

Você pode usar a ferramenta csreset para redefinir o ambiente do Cloud Shell ao seu estado padrão. Você pode redefinir apenas as configurações de perfil bash e emacs ou pode excluir todos os dados no diretório home e redefinir as configurações bash e emacs.

Para redefinir os arquivos bash

Você pode usar a opção --bashfiles (ou -b) para redefinir os arquivos $ HOME/.bashrc, $ HOME/.bash_profile, $ HOME/.bash_logout e $ HOME/.emacs de volta aos valores padrão:

csreset --bashfiles

ou

csreset -b

Para redefinir tudo

Você pode usar a opção --all (ou -a) para apagar todos os dados no diretório $HOME e redefinir os arquivos $ HOME/.bashrc, $ HOME/.bash_profile, $ HOME/.bash_logout e $ HOME/.emacs de volta aos valores padrão:

csreset --all

ou

csreset -a

Exibindo a ajuda

Para exibir opções de uso, utilize a opção --help ou -h:

csreset -h

ou

csreset --help

Backup e Restauração do Diretório Home do Cloud Shell usando o serviço Object Storage

Você pode arquivar e fazer backup do conteúdo do Diretório Home do Cloud Shell para um bucket no serviço Object Storage.

Observação

Embora o Cloud Shell forneça persistência entre sessões, o serviço não fornece a capacidade de restaurar arquivos que possam ter sido excluídos inadvertidamente pelo usuário. O serviço também não fornece recuperação de desastre para dados contidos no diretório home. Se seus dados forem críticos para você, considere a criação de backups entre regiões.

Para fazer backup do diretório home do Cloud Shell no serviço Object Storage

  1. Crie um bucket no serviço Object Storage que conterá seu backup (você também pode usar um bucket existente). Para obter informações sobre como trabalhar com buckets no serviço Object Storage, consulte Buckets do serviço Object Storage.
    Observação

    Para localizar o namespace padrão do serviço Object Storage para sua tenancy, você pode executar o comando: oci os ns get.
  2. Execute o comando a seguir em um prompt do Cloud Shell. Certifique-se de que os valores OCI_CS_USER_BACKUPS_BUCKET_NAME e OCI_CS_USER_BACKUPS_NAMESPACE estejam definidos com os valores apropriados para o seu 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. Confirme que todos os comandos foram concluídos sem erros. Você pode executar o seguinte comando para confirmar se o seu arquivo de backup existe no Object Storage e tem o tamanho esperado:
    oci os object head --namespace-name $OCI_CS_USER_BACKUPS_NAMESPACE --bucket-name $OCI_CS_USER_BACKUPS_BUCKET_NAME --name $FILENAME

Para restaurar seu diretório home do Cloud Shell do serviço Object Storage

  1. Localize o nome do objeto com o seu backup e o nome do bucket no qual ele está. Você precisará desses valores como parâmetros para os comandos a seguir. Para obter informações sobre o Object Storage, consulte a documentação do serviço Object Storage.
  2. Execute os comandos a seguir em um prompt do Cloud Shell. Substitua as variáveis OCI_CS_USER_BACKUPS_BUCKET_NAME, OCI_CS_USER_BACKUPS_OBJECT_NAME e OCI_CS_USER_BACKUPS_NAMESPACE pelos valores apropriados.
    Observação

    Para localizar o namespace padrão do serviço Object Storage para sua tenancy, você pode executar o comando: oci os ns get.
    Observação

    O comando tar não substitui os arquivos existentes. Se quiser substituir arquivos existentes, remova o parâmetro --skip-old-files e adicione o 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. Verifique a saída do comando e os arquivos no diretório home para confirmar que todos os comandos foram concluídos sem erros.

Como Trabalhar com Versões do Python

O Cloud Shell usa Python 3. Para executar o python, digite python no prompt de comando:
python

Como Trabalhar com Versões do kubectl

O Cloud Shell vem pré-instalado com cada versão do Kubernetes atualmente suportada pelo OKE. Essas versões são instaladas em /usr/local/bin/kubectl-{version} (por exemplo: /usr/local/bin/kubectl-v1.17.13) e o caminho para o binário é incluído na variável de ambiente PATH.

Por padrão, a execução do kubectl na sessão do Cloud Shell chamará a segunda versão instalada mais recente do kubectl. Fazemos isso para otimizar a compatibilidade com base na política de desvio de versão do Kubernetes.

Se quiser usar uma versão do kubectl diferente da versão padrão, você poderá chamar o binário específico da versão.

Por exemplo:
kubectl-v1.17.13 get services
Outra opção seria criar um alias para apontar o kubectl para uma versão específica.
Por exemplo:
alias kubectl=kubectl-v1.17.13
Observação

Se quiser que o alias persista entre sessões do Cloud Shell, adicione a definição de alias ao seu arquivo ~/.bashrc.

Gerenciando Runtimes de Linguagem

Você pode usar o comando csruntimectl para exibir e gerenciar os runtimes de linguagem que o Cloud Shell usa para execução de programas.
Observação

No momento, o comando csruntimectl só suporta Java.
Para ver quais versões de um runtime são suportadas atualmente no Cloud Shell, use a opção list. Por exemplo:
csruntimectl java list
Você pode usar a opção set para especificar qual versão de runtime o Cloud Shell usa. Por exemplo, para definir o runtime Java:
csruntimectl java set oraclejdk-11

Observe que essa definição persiste nas sessões do Cloud Shell.

Use a opção help para gerar uma lista das opções suportadas atualmente:
csruntimectl help

Obtendo o Endereço IP Público de uma Sessão do Cloud Shell

Você pode determinar o endereço IP público da sua sessão do Cloud Shell. Essas informações podem ser úteis em vários cenários, incluindo a configuração do acesso a recursos externos por meio da sua sessão do Cloud Shell.
Observação

O endereço IP público do Cloud Shell é dinâmico. Ele não será alterado durante uma sessão do Cloud Shell, mas poderá ser alterado quando você iniciar uma nova sessão.
Você pode determinar o endereço IP público da sua sessão do Cloud Shell executando o seguinte comando:
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Observação

Esse comando retorna o endereço IP público do Gateway NAT associado ao Cloud Shell. Como o Cloud Shell não está associado a um Gateway de Internet, você não pode usar esse endereço IP para acessar um serviço Web executado no Cloud Shell.