Utilice la interfaz de línea de comandos de Oracle Cloud Infrastructure para gestionar Oracle Exadata Database Service on Cloud@Customer
Introducción
La interfaz de línea de comandos de Oracle Cloud Infrastructure (OCI CLI) es una excelente herramienta para gestionar sus recursos en OCI, incluidos los recursos de Oracle Exadata Database Service on Cloud@Customer. OCI CLI te permite orquestar y automatizar las operaciones de OCI de manera fácil y eficiente. A medida que la CLI de OCI llama a la API de REST de OCI, esto significa que la CLI de OCI y la API de REST de OCI son compatibles aunque la sintaxis sea diferente. Puede utilizar la CLI de OCI durante el desarrollo de automatizaciones de la API de REST de OCI para pruebas y errores y, a continuación, desplegar las automatizaciones con menos esfuerzo.
Esta es una serie de dos partes, en la que en esta primera parte le presentamos los conceptos básicos de OCI CLI, mientras que en la segunda parte nos estamos centrando más en los comandos y flujos de trabajo específicos de Oracle Exadata Database Service on Cloud@Customer.
Nota: La CLI de OCI también es necesaria cuando se utiliza la escala dinámica con el plugin remoto, pero la escala dinámica en sí no se tratará en este tutorial.
Objetivos
-
Instale la CLI de OCI.
-
Utilice el formato de salida para filtrar y formatear las salidas de comandos según sus necesidades.
-
Utilice la asistencia de entrada para simplificar el uso de la CLI de OCI.
Requisitos
-
Acceso a un arrendamiento de OCI con una infraestructura de Oracle Exadata Database Service on Cloud@Customer.
-
Un usuario creado en el arrendamiento, en un grupo con una política que otorgue los permisos deseados.
-
Una versión soportada del entorno Python instalado en un sistema operativo compatible con acceso al arrendamiento de OCI. Para obtener más información, consulte Versiones y sistemas operativos de Python admitidos.
-
Un par de claves que se usan para firmar solicitudes de API, con la clave pública cargada en Oracle.
Tarea 1: Instalación de la CLI de OCI
OCI CLI se basa en el kit de desarrollo de software (SDK) de OCI para Python y se ejecuta en Mac, Windows o Linux. El código Python realiza llamadas a las API de OCI para proporcionar la funcionalidad implementada para los diversos servicios, incluidos Oracle Exadata Database Service on Cloud@Customer y Oracle Autonomous Database on Exadata Cloud@Customer.
-
Descargue la CLI de OCI para su sistema operativo desde aquí: repositorio GitHub de la CLI de OCI.
-
Siga las instrucciones de instalación según su sistema operativo.
-
Ejecute el siguiente comando para verificar la instalación.
$ oci --version
-
Configure una configuración mediante el cuadro de diálogo de configuración que contenga las credenciales necesarias para trabajar con OCI.
$ oci setup config
-
Verifique el archivo de configuración.
Por ejemplo:
[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
-
Ejecute el siguiente comando para comprobar la conectividad, que mostrará el espacio de nombres de su arrendamiento.
$ oci os ns get
-
Ejecute el siguiente comando para mostrar los compartimentos disponibles.
$ oci iam compartment list
Esto generará la siguiente respuesta de 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" } ] }
Nota: Tenga en cuenta que la salida se ha truncado para mostrar solo el primer compartimento.
-
Ejecute el siguiente comando para mostrar todas las solicitudes de trabajo de un compartimento.
$ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
Uso del formato de salida para filtrar y formatear las salidas de comandos según sus necesidades
Como ha visto en los ejemplos anteriores, la respuesta de JSON de los comandos de la CLI de OCI puede ser extensa, difícil de seguir y no fácil de leer.
En el símbolo del sistema de Linux, por ejemplo, siempre puede canalizar la salida a herramientas eléctricas como grep para filtrar la respuesta.
Utilice el siguiente comando para mostrar todos los clusters de VM de un compartimento específico y filtrar id
.
$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"
Esto generará la siguiente respuesta:
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
Sin embargo, la CLI de OCI ha incorporado la funcionalidad de consulta con el parámetro --query
, donde puede especificar los campos que desea consultar.
-
Ejecute el siguiente comando con el parámetro
--query
.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
La respuesta de JSON será:
[ [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
Puede especificar fácilmente campos adicionales detrás de
--query
para crear una consulta más compleja.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
La respuesta de JSON será:
[ [ "fraexaclu1-uvlkz", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "fraexaclu2-2uyfk", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
Puede obtener una salida más fácil de utilizar mediante el parámetro de tabla
--output
.$oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
La respuesta será:
+----------------------------------------------------------------------------------------------------------------------+ | Column1 | Column2 | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
-
También puede especificar las cabeceras de las columnas mediante el parámetro
--query
.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
La respuesta será:
+----------------------------------------------------------------------------------------------------------------------+ | Hostname | OCID | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
Nota: Es importante comprender la correlación entre la sintaxis utilizada con el parámetro
--query
y la respuesta de JSON. Los subcomandos de la CLI de OCI, comolist
, suelen devolver muchos resultados, mientras que los subcomandos de la CLI de OCI, comoget
, solo devuelven un resultado.-
Donde la respuesta de JSON muestra que los datos son una lista o una matriz, según lo especificado por
[
.[opc@jens-oci-1 ~]$ oci db vm-cluster list { "data": [ {
A continuación, la sintaxis de la consulta se ve así:
--query "data[].[ field1 , field2 ]"
-
Donde la respuesta de JSON muestra que los datos son un único objeto.
[opc@jens-oci-1 ~]$ oci db vm-cluster get { "data": {
A continuación, la sintaxis del comando
get
tiene el siguiente aspecto:--query "data.[ field1 , field2 ]"
-
Uso de la asistencia de entrada para simplificar el uso de la CLI de OCI
Hay varias formas diferentes de obtener asistencia de entrada con la CLI de OCI para casos de uso ad hoc y automatizados.
-
Uso de Variables de Entorno:
Puede utilizar variables de entorno para almacenar los valores de los parámetros que transferimos a la CLI de OCI.
Por ejemplo, puede que desee utilizar
$T
para un OCID de arrendamiento y$C
para un OCID de compartimento.T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
Puede utilizar esto en los comandos de la CLI de OCI de la siguiente manera:
$ oci work-requests work-request list --compartment-id $C
-
Uso de
--help
:Siempre puede utilizar
--help
para obtener información adicional sobre el comando. Esto se aplica en todos los niveles de la estructura de comandos de la CLI de OCI.Por ejemplo:
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
A continuación, se muestra el ejemplo de respuesta del 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...
-
Uso de perfiles en el archivo de configuración principal:
Al configurar la CLI de OCI mediante el cuadro de diálogo de configuración, se creará un archivo de configuración principal y la ruta de acceso se mostrará en la salida. En Linux y Unix, el archivo de configuración principal se encuentra en
/home/opc/.oci/config
.Ejemplo de un archivo de configuración 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
En el ejemplo anterior, el perfil por defecto se ha creado con el usuario, el arrendamiento y la región definidos. Al utilizar la línea de comandos sin especificar los parámetros, los valores por defecto se utilizarán desde el perfil. Si desea ver resultados fuera de los valores definidos en el archivo de perfil, puede especificar explícitamente los valores en la línea de comandos.
También puede crear varios perfiles en el archivo de configuración 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
Puede consultar el perfil predefinido con el siguiente comando.
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
Uso de los Archivos de Configuración de Tiempo de Ejecución:
Si desea que sea aún más fácil seleccionar entre diferentes regiones, compartimentos, clusters de VM, etc., especifique perfiles con esta información en un segundo archivo de configuración de tiempo de ejecución opcional. El archivo de configuración de tiempo de ejecución complementa el archivo de configuración principal. Puede especificar valores por defecto para los parámetros de la línea de comandos en el archivo de configuración de tiempo de ejecución.
Puede crear un archivo de configuración de tiempo de ejecución con el siguiente comando.
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
Puede complementar los perfiles del archivo de configuración principal y agregar detalles de perfil adicionales al final del archivo de configuración de tiempo de ejecución.
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
Puede especificar estos perfiles definidos en la ejecución del comando con el siguiente comando.
$ 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 | +------------+------------------------------------------------------------------------------------------------------+
-
Generar archivo de entrada JSON de comando completo:
El archivo de entrada JSON de comando completo se utiliza con el parámetro
--from-json file://<json file name>
para especificar todos los parámetros para el comando. Para que esto sea posible, hay un parámetro denominado--generate-full-command-json-input
que creará un archivo JSON con todos los parámetros para ese comando.Utilice el siguiente comando para generar un archivo JSON con el nombre de archivo
vm-cluster_update.json
.oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
Puede editar este archivo de entrada JSON y mantener solo los parámetros relevantes para el comando que desea ejecutar. En este ejemplo, escalaremos el número de OCPU para el cluster de VM, que era de 0 (cero), y para ello necesitaremos el ID de cluster de VM y la nueva cantidad de OCPU (escalando a 4 OCPU).
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
Utilice el siguiente comando para utilizar el archivo de entrada JSON.
oci db vm-cluster update --from-json file://vm-cluster_update.json
Enlaces relacionados
-
Interfaz de línea de comandos (CLI de OCI) de Oracle Cloud Infrastructure
-
referencia de comandos de la interfaz de línea de comandos de Oracle Cloud Infrastructure
Acuses de recibo
- Autores: Jens Ejvinsson (cinturón negro de Exadata Cloud@Customer), Zsolt Szokol (cinturón negro de Exadata Cloud@Customer)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38690-01
Copyright ©2025, Oracle and/or its affiliates.