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

Requisitos

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.

  1. Descargue la CLI de OCI para su sistema operativo desde aquí: repositorio GitHub de la CLI de OCI.

  2. Siga las instrucciones de instalación según su sistema operativo.

  3. Ejecute el siguiente comando para verificar la instalación.

    $ oci --version
    
  4. 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
    
  5. 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
    
  6. Ejecute el siguiente comando para comprobar la conectividad, que mostrará el espacio de nombres de su arrendamiento.

    $ oci os ns get
    
  7. 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.

  8. 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.

  1. 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"
          ]
    ]
    
  2. 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"
         ]
        ]	
    
  3. 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 |
    +------------------+---------------------------------------------------------------------------------------------------+
    
  4. 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, como list, suelen devolver muchos resultados, mientras que los subcomandos de la CLI de OCI, como get, 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.

Acuses de recibo

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.