Usar a Interface de Linha de Comando do Oracle Cloud Infrastructure para gerenciar o Oracle Exadata Database Service on Cloud@Customer
Introdução
A Interface de Linha de Comando (CLI da OCI) da Oracle Cloud Infrastructure é uma ótima ferramenta para gerenciar seus recursos na OCI, incluindo os recursos do Oracle Exadata Database Service on Cloud@Customer. A CLI da OCI permite orquestrar e automatizar operações da OCI com facilidade e eficiência. Como a CLI do OCI chama a API REST do OCI, isso significa que a CLI do OCI e a API REST do OCI são compatíveis, mesmo que a sintaxe seja diferente. Você pode usar a CLI do OCI durante o desenvolvimento de automações da API REST do OCI para tentativa e erro e, em seguida, implantar suas automações com menos esforço.
Esta é uma série de duas partes, em que nesta primeira parte estamos apresentando os conceitos básicos da CLI da OCI, enquanto na segunda parte estamos nos concentrando mais nos comandos e fluxos de trabalho específicos do Oracle Exadata Database Service on Cloud@Customer.
Observação: A CLI do OCI também é necessária ao usar o Dimensionamento Dinâmico com o plug-in remoto, mas o próprio Dimensionamento Dinâmico não será abordado neste tutorial.
Objetivos
-
Instale a CLI do OCI.
-
Use a formatação de saída para filtrar e formatar as saídas de comando para suas necessidades.
-
Use a assistência de entrada para simplificar o uso da CLI do OCI.
Pré-requisitos
-
Acesso a uma tenancy do OCI com uma infraestrutura do Oracle Exadata Database Service on Cloud@Customer.
-
Um usuário criado na tenancy, em um grupo com uma política que concede as permissões desejadas.
-
Uma versão suportada do ambiente Python instalada em um Sistema Operacional (SO) suportado com acesso à tenancy do OCI. Para obter mais informações, consulte Versões e Sistemas Operacionais Python Suportados.
-
Um par de chaves usado para assinar solicitações de API, com a chave pública carregada por upload para o sistema Oracle.
Tarefa 1: Instalar a CLI do OCI
A CLI da OCI é criada no SDK (Software Development Kit) da OCI para Python e executada em Mac, Windows ou Linux. O código Python faz chamadas para APIs do OCI para fornecer a funcionalidade implementada para os vários serviços, incluindo o Oracle Exadata Database Service on Cloud@Customer e o Oracle Autonomous Database on Exadata Cloud@Customer.
-
Faça download da CLI do OCI para seu sistema operacional aqui: repositório da CLI GitHub do OCI.
-
Siga as instruções de instalação de acordo com o seu sistema operacional.
-
Execute o comando a seguir para verificar sua instalação.
$ oci --version
-
Configure uma configuração usando a caixa de diálogo de configuração que contém as credenciais necessárias para trabalhar com o OCI.
$ oci setup config
-
Verifique seu arquivo de configuração.
Por exemplo:
[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
-
Execute o comando a seguir para verificar sua conectividade, que mostrará o namespace da sua tenancy.
$ oci os ns get
-
Execute o comando a seguir para listar seus compartimentos disponíveis.
$ oci iam compartment list
Isso gerará a seguinte resposta 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" } ] }
Observação: Observe que a saída foi truncada para mostrar apenas o primeiro compartimento.
-
Execute o comando a seguir para listar todas as solicitações de serviço em um compartimento.
$ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
Use a Formatação de Saída para Filtrar e Formatar as Saídas de Comando para suas Necessidades
Como você viu nos exemplos anteriores, a resposta JSON dos comandos da CLI do OCI pode ser extensa, difícil de seguir e não é fácil de ler.
No prompt de comando do Linux, por exemplo, você sempre pode canalizar a saída para ferramentas elétricas como grep para filtrar sua resposta.
Use o comando a seguir para listar todos os clusters de VMs em um compartimento específico e filtrar por id
.
$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"
Isso gerará a seguinte resposta:
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
No entanto, a CLI do OCI incorporou a funcionalidade de consulta com o parâmetro --query
, no qual você pode especificar quais campos deseja consultar.
-
Execute o comando a seguir com o parâmetro
--query
.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
A resposta JSON será:
[ [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
Você pode especificar facilmente campos adicionais atrás de
--query
para criar uma consulta mais complexa.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
A resposta JSON será:
[ [ "fraexaclu1-uvlkz", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "fraexaclu2-2uyfk", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
Você pode obter uma saída mais amigável usando o parâmetro da tabela
--output
.$oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
A resposta será:
+----------------------------------------------------------------------------------------------------------------------+ | Column1 | Column2 | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
-
Você também pode especificar os cabeçalhos das colunas usando o parâmetro
--query
.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
A resposta será:
+----------------------------------------------------------------------------------------------------------------------+ | Hostname | OCID | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
Observação: É importante entender a correlação entre a sintaxe usada com o parâmetro
--query
e a resposta JSON. Os subcomandos da CLI do OCI, comolist
, geralmente retornam muitos resultados, enquanto os subcomandos da CLI do OCI, comoget
, retornam apenas um resultado.-
Onde a resposta JSON mostra que os dados são uma lista ou matriz, conforme especificado por um
[
.[opc@jens-oci-1 ~]$ oci db vm-cluster list { "data": [ {
A sintaxe da consulta será semelhante a esta:
--query "data[].[ field1 , field2 ]"
-
Onde a resposta JSON mostra que os dados são um único objeto.
[opc@jens-oci-1 ~]$ oci db vm-cluster get { "data": {
Em seguida, a sintaxe do comando
get
terá esta aparência:--query "data.[ field1 , field2 ]"
-
Usar a Assistência de Entrada para Simplificar o Uso da CLI do OCI
Há várias maneiras diferentes de obter assistência de entrada com a CLI da OCI para casos de uso ad-hoc e automatizados.
-
Usando Variáveis de Ambiente:
Você pode usar variáveis de ambiente para armazenar os valores dos parâmetros que passamos para a CLI do OCI.
Por exemplo, talvez você queira usar
$T
para um OCID da tenancy e$C
para um OCID de compartimento.T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
Você pode usar isso nos comandos da CLI do OCI desta forma:
$ oci work-requests work-request list --compartment-id $C
-
Usando o
--help
:Você sempre pode usar
--help
para obter informações adicionais sobre seu comando. Isso se aplica a todos os níveis na estrutura de comandos da CLI do OCI.Por exemplo:
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
Veja a seguir o exemplo de resposta do comando
oci db vm-cluster --help
.Usage: oci db vm-cluster [OPTIONS] COMMAND [ARGS]... Details of the cloud VM cluster. Applies to Exadata Cloud Service instances only. Options: -?, -h, --help For detailed help on any of these individual commands, enter <command> --help. Commands: add Add Virtual Machines to the Cloud... change-vm-cluster-subscription Associate a cloud VM cluster with... change-compartment Moves a cloud VM cluster and its... create Creates a cloud VM cluster. delete Deletes the specified cloud VM... get Gets information about the... get-exadata-iorm-config Gets the IORM configuration for... get-update Gets information about a... get-update-history Gets the maintenance update... list Gets a list of the cloud VM... list-update-histories Gets the history of the... list-updates Lists the maintenance updates... remove Remove Virtual Machines from the... update Updates the specified cloud VM... update-exadata-iorm-config Updates the IORM settings for the...
-
Usando Perfis no Arquivo de Configuração principal:
Ao configurar a CLI do OCI usando a caixa de diálogo de configuração, um arquivo de configuração principal será criado e será o caminho listado na saída. No Linux e no Unix, o arquivo de configuração principal está localizado em
/home/opc/.oci/config
.Exemplo de um arquivo de configuração principal:
[opc@jens-oci-1 ~]$ cat .oci/config [DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1
No exemplo acima, o perfil padrão foi criado com o usuário, a tenancy e a região definidas. Ao usar a linha de comando sem especificar os parâmetros, os valores padrão serão usados no perfil. Se você quiser ver resultados fora dos valores definidos no arquivo de perfil, poderá especificar explicitamente os valores na linha de comando.
Você também pode criar vários perfis no arquivo de configuração principal.
[DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1 [AMS] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-amsterdam-1
Você pode consultar o perfil predefinido com o comando a seguir.
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
Usando os Arquivos de Configuração de Runtime:
Quando quiser facilitar ainda mais a seleção entre diferentes regiões, compartimentos, clusters de VMs etc., você especifica perfis com essas informações em um segundo arquivo de configuração de runtime opcional. O arquivo de configuração de runtime está complementando o arquivo de configuração principal. Você pode especificar valores padrão para os parâmetros de linha de comando no arquivo de configuração de tempo de execução.
Você pode criar um arquivo de configuração de runtime com o comando a seguir.
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
Você pode complementar os perfis no arquivo de configuração principal e adicionar detalhes adicionais ao final do arquivo de configuração de tempo de execução.
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
Você pode especificar esses perfis definidos na execução do comando com o comando a seguir.
$ oci db vm-cluster get --profile AMS --query "data.{\"OCID\" : \"id\" , \"Core Count\" : \"cpu-core-count\" }" --output table +------------+------------------------------------------------------------------------------------------------------+ | Core Count | OCID | +------------+------------------------------------------------------------------------------------------------------+ | 0 | ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | +------------+------------------------------------------------------------------------------------------------------+
-
Gerar arquivo de Entrada JSON de Comando Completo:
O arquivo de entrada JSON do comando completo é usado com o parâmetro
--from-json file://<json file name>
para especificar todos os parâmetros do comando. Para viabilizar isso, há um parâmetro chamado--generate-full-command-json-input
que criará um arquivo JSON com todos os parâmetros desse comando.Use o comando a seguir para gerar o arquivo JSON com o nome de arquivo
vm-cluster_update.json
.oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
Você pode editar esse arquivo de entrada JSON e manter apenas os parâmetros relevantes para o comando que deseja executar. Neste exemplo, dimensionaremos o número de OCPUs para o cluster de VMs, que estava em 0 (zero) e, para isso, precisaremos do ID do cluster de VMs e da nova quantidade de OCPUs (dimensionando para 4 OCPUs).
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
Use o comando a seguir para utilizar o arquivo de entrada JSON.
oci db vm-cluster update --from-json file://vm-cluster_update.json
Links Relacionados
-
Interface de Linha de Comando do Oracle Cloud Infrastructure (CLI do OCI)
-
Referência de Comando da Interface de Linha de Comando do Oracle Cloud Infrastructure
Confirmações
- Autores - Jens Ejvinsson (Exadata Cloud@Customer Black Belt), Zsolt Szokol (Exadata Cloud@Customer Black Belt)
Mais Recursos de Aprendizado
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38696-01
Copyright ©2025, Oracle and/or its affiliates.