Configuración de la CLI

Puede usar estas configuraciones opcionales para ampliar la funcionalidad de CLI. CLI soporta el uso de un archivo para configuraciones específicas de CLI. Puede:

  • Especificar un perfil por defecto.
  • Definir valores por defecto para las opciones de comandos de modo que no tenga que escribirlos en la línea de comandos.
  • Definir alias para los comandos. Por ejemplo, utilizar "ls" como alias de list.
  • Definir alias para las opciones. Por ejemplo, utilizar "--ad" como alias para --availability-domain.
  • Definir las consultas con nombre que se transfieren a la opción --query en lugar de escribir una expresión JMESPath en la línea de comandos.

La CLI también soporta el uso de variables de entorno para especificar valores por defecto para algunas opciones. Para obtener más información, consulte Variables de entorno de CLI.

Archivo de configuración de CLI

La ubicación por defecto y el nombre del archivo de configuración específico de la CLI son ~/.oci/oci_cli_rc, pero puede utilizar la variable de entorno OCI_CLI_RC_FILE para modificar dónde la CLI busca un archivo de configuración y sus valores por defecto al iniciar.

También puede especificar de forma explícita un archivo de configuración de CLI con la opción --cli-rc-file o con la opción --defaults-file heredada. Por ejemplo:

# Uses the file from ~/.oci/oci_cli_rc 
# or OCI_CLI_RC_FILE environment variable
oci os bucket list
			
# Uses a custom file
oci os bucket list --cli-rc-file path/to/my/cli/rc/file

Para especificar un archivo oci_cli_rc, ejecute el siguiente comando.


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

Este comando crea el archivo que especifique que incluya ejemplos de alias de comandos por defecto, alias de parámetros y consultas con nombre.

Nota

Si está utilizando Windows, debe utilizar la barra invertida como separador de directorios en los nombres de las rutas de acceso, en lugar de la barra inclinada.

Especificación de un perfil por defecto

Especifique un perfil por defecto en la sección OCI_CLI_SETTINGS del archivo de configuración de CLI. En el siguiente ejemplo se muestra cómo especificar un perfil por defecto denominado IAD. La CLI busca un perfil denominado IAD en el archivo ~/.oci/config o cualquier otro archivo que especifique con la opción --config-file o la variable de entorno OCI_CLI_CONFIG_FILE.

[OCI_CLI_SETTINGS]
default_profile=IAD

También puede especificar un perfil por defecto mediante el uso de la opción --profile o mediante la configuración de la variable de entrono OCI_CLI_PROFILE.

Si se ha especificado un valor de perfil por defecto en varias ubicaciones, el orden de prioridad es:

  1. Valor especificado en la opción --profile.
  2. Valor especificado en la variable de entorno OCI_CLI_PROFILE.
  3. Valor especificado en el campo default_profile de la sección OCI_CLI_SETTINGS del archivo de configuración de CLI.

Especificación de valores por defecto

La CLI soporta el uso de valores por defecto para que no sea necesario escribirlos en la línea de comandos. Por ejemplo, en lugar de escribir --compartment-id en cada comando de inicio de instancia o tener que especificar --namespace al utilizar comandos de Object Storage. Puede especificar esta información en un archivo de valores por defecto.

Los valores por defecto se pueden aplicar en diferentes niveles, de general a específico:

  • Globalmente, en todos los comandos de CLI.
  • A un servicio concreto, como Compute u Object Storage.
  • A un grupo concreto, como comandos relacionados con la exportación de imágenes.
  • A un comando específico.

Los valores por defecto se tratan jerárquicamente, con valores específicos que tienen un orden de prioridad mayor que los valores generales. Por ejemplo, si hay un valor definido globalmente para compartment-id y un valor compartment-id específico definido para el comando compute instance launch, CLI utiliza el valor para compute instance launch en lugar del valor global por defecto.

Prioridad del valor del comando

Si se proporciona un valor en la línea de comandos y también existe en --cli-rc-file, el valor de la línea de comandos tiene prioridad. Para un comando con opciones que toman varios valores, los valores se toman completamente de la línea de comandos o de --cli-rc-file. Los 2 orígenes no se fusionan.

Sintaxis del archivo de valores por defecto

El archivo --cli-rc-file se puede dividir en secciones diferentes con una o más claves por sección.

Secciones

En el siguiente ejemplo, el archivo tiene dos secciones, con una clave en cada sección. Para especificar la sección que se debe usar, utilice la opción --profile en CLI.

[DEFAULT]
compartment-id = ocid1.compartment.oc1..<unique_ID_1>
[ANOTHER_SECTION]
compartment-id = ocid1.compartment.oc1..<unique_ID_2>

Claves

Las claves se nombran según las opciones de la línea de comandos, pero no utilizan un guión doble inicial (--). Por ejemplo, la clave de --image-id es image-id. Puede especificar claves para valores únicos, varios valores e indicadores.

  • Claves para valores únicos. En el siguiente ejemplo se muestra cómo especificar valores clave en diferentes niveles y con diferentes ámbitos.

    [DEFAULT]
    # Defines a global default for bucket-name
    bucket-name = my-global-default-bucket-name
    
    # Defines a default for bucket-name, which applies to all 'compute' commands
    compute.bucket-name = bucket-name-for-image-import-export
    				
    # Defines a default for bucket-name, which applies to all 'os object' commands (e.g., os object get)
    os.object.bucket-name = bucket-name-for-object-commands
    
    # Defines a default for bucket-name, for the 'os object multipart list' command
    os.object.multipart.list.bucket-name = bucket-name-for-multipart-list
  • Claves para varios valores. Algunas opciones, como --include y --exclude en el comando oci os object bulk-upload se pueden especificar más de una vez. Por ejemplo:

    oci os object bulk-upload -ns my-namespace -bn my-bucket --src-dir my-directory --include *.txt --include *.png

    En el siguiente ejemplo se muestra cómo introducir los valores de --include en el archivo --cli-rc-file

    [DEFAULT]
    os.object.bulk-upload.include =
    			*.txt
    			*.png

    En el ejemplo anterior, se especifica un valor para cada línea y cada línea debe sangrarse debajo de la clave. Puede usar separadores o espacios, y la cantidad de sangrado no importa. También puede colocar un valor en la misma línea que la clave, agregar más valores en las siguientes líneas y utilizar una sentencia de ruta de acceso para un valor. Por ejemplo:

    [DEFAULT]
    os.object.bulk-upload.include = *.pdf
    			*.txt
    			*.png
    			my-subfolder/*.tiff
  • Claves para indicadores. Algunas opciones de comando son indicadores, como --force, que utilizan un valor booleano. Para definir un indicador para la opción --force, utilice el siguiente comando.

    os.object.delete.force=true

Especificación de alias de comando

Especifique consultas con nombre en la sección OCI_CLI_COMMAND_ALIASES del archivo de configuración de CLI. Hay dos tipos de alias, alias globales y alias de secuencias de comandos. El siguiente ejemplo muestra cada tipo de alias.

[OCI_CLI_COMMAND_ALIASES]
# This is a global alias that lets you use "ls" instead of "list" for any list command in the CLI.
#
ls = list

# Command examples:
# oci os object ls or oci os compute ls

# This is a command sequence alias that lets you use "oci os object rm" instead of "oci os 
# object delete". 
# <alias> = <dot-separated sequence of groups and sub-groups>.<command or group to alias>
# 
rm = os.object.delete					

# Command example:
# <alias> = rm, <sequence of groups and sub-groups> = os object, <command or group to alias> = delete	 								

Si desea definir valores por defecto para opciones en el archivo de configuración de CLI, puede usar los nombres de alias que ha definido. Por ejemplo, si tiene -ls como alias de --list, puede definir un valor por defecto para un dominio de disponibilidad al mostrar instancias mediante el siguiente comando.

[DEFAULT]
compute.instance.ls.compartment-id=ocid1.compartment.oc1..<unique_ID>

Especificación de alias de opciones

Especifique alias de opciones en la sección OCI_CLI_PARAM_ALIASES del archivo de configuración de CLI. Los alias de opciones se aplican globalmente. En el ejemplo siguiente se muestran algunos alias para las opciones de comandos.


[OCI_CLI_PARAM_ALIASES]
# Option aliases either start with a double hyphen (--) or are a single hyphen (-) followed by a # single letter. For example: --example-alias, -e
#
--ad = --availability-domain
--dn = --display-name
--egress-rules = --egress-security-rules
--ingress-rules = --ingress-security-rules

Si desea definir valores por defecto para opciones en el archivo de configuración de CLI, puede usar los nombres de alias que ha definido. Por ejemplo, si tiene -ad como alias de --availability-domain, puede definir un valor por defecto para un dominio de disponibilidad al mostrar instancias mediante el siguiente comando.

[DEFAULT]
compute.instance.list.ad=xyx:PHX-AD-1

Especificación de consultas con nombre

Si utiliza el parámetro --query para filtrar o manipular la salida, puede definir consultas con nombre en lugar de utilizar una expresión JMESPath en la línea de comandos.

Especifique consultas con nombre en la sección OCI_CLI_CANNED_QUERIES del archivo de configuración de CLI.

Ejemplos de consultas con nombre
[OCI_CLI_CANNED_QUERIES]
#  For list results, this gets the ID and display-name of each item in the list. 
#  Note that when the names of attributes have dashes in them they need to be surrounded 
#  with double quotes. This query knows to look for a list because of the [*] syntax 

get_id_and_display_name_from_list=data[*].{id: id, "display-name": "display-name"}
 
get_id_and_display_name_from_single_result=data.{id: id, "display-name": "display-name"}
						
#  Retrieves a comma separated string, for example:
#  ocid1.instance.oc1.phx.xyz....,cli_test_instance_675195,RUNNING
#						
get_id_display_name_and_lifecycle_state_from_single_result_as_csv=data.[id, "display-name", "lifecycle-state"] | join(`,`, @)					
						
#  Retrieves comma separated strings from a list of results
#
get_id_display_name_and_lifecycle_state_from_list_as_csv=data[*].[join(`,`, [id, "display-name", "lifecycle-state"])][]
 
#  Filters where the display name contains some text
#
filter_by_display_name_contains_text=data[?contains("display-name", `your_text_here`)]	
						
#  Filters where the display name contains some text and pull out certain attributes(id and time-created)
#
filter_by_display_name_contains_text_and_get_attributes=data[?contains("display-name", `your_text_here`)].{id: id, timeCreated: "time-created"}
 
#  Get the top 5 results from a list operation
#						
get_top_5_results=data[:5]
 
#  Get the last 2 results from a list operation
#
get_last_2_results=data[-2:]				

Puede hacer referencia a cualquiera de estas consultas mediante esta sintaxis: query://<query name>.

Por ejemplo, para obtener el ID y el nombre mostrado de una lista, ejecute el siguiente comando.

oci compute instance list -c $C --query query://get_id_and_display_name_from_list

Activación de la terminación automática

Si ha utilizado el instalador de CLI, no tiene que configurar la terminación automática porque se activa automáticamente.

Para activar la terminación automática (terminación de tabulador) para una instalación manual de CLI, ejecute el siguiente comando.

oci setup autocomplete

Para activar la terminación automática en una sesión por sesión, ejecute el siguiente comando.

eval "$(_OCI_COMPLETE=source oci)"
Nota

Soporte de la terminación automática en Windows

La terminación automática en Windows solo está soportada si utiliza PowerShell. Se ejecuta un script para activar esta función. Sin embargo, debe cambiar la política de ejecución de PowerShell a RemoteSigned. Para configurar esta política, ejecute el siguiente comando en la línea de comandos de PowerShell.

Set-ExecutionPolicy RemoteSigned

Especificación de un servidor proxy

Si su entorno requiere que utilice un servidor proxy para las solicitudes HTTP salientes, puede especificar la configuración de proxy mediante una variable de entorno.

Para configurar un servidor proxy, defina las variables de entorno http_proxy, https_proxy, HTTP_PROXY y HTTPS_PROXY en el servidor proxy correcto del entorno.

Por ejemplo, en un entorno de shell de Linux o Unix:

export "https_proxy=http://www-proxy-example.com:80"
En PowerShell:
$Env:https_proxy = "http://www-proxy-example.com:80"

Uso de bibliotecas validadas por FIPS

CLI se puede configurar para utilizar bibliotecas validadas por FIPS en Linux. CLI se basa en el SDK para Python de Oracle Cloud Infrastructure y utiliza las bibliotecas criptográficas del nivel del sistema operativo.

Configuración del entorno

  1. Verifique que la versión instalada de OpenSSL sea compatible con FIPS. Ejecute el siguiente comando:
    openssl version

    Si "fips" no forma parte del nombre de la versión, debe actualizar OpenSSL a una versión compatible con FIPS. Puede descargar las últimas versiones de OpenSSL en: https://www.openssl.org/source/

  2. Determine la ubicación de la versión compatible con FIPS de libcrypto:
    ls -l /usr/lib64/libcrypto*
  3. Defina la variable de entorno OCI_CLI_FIPS_LIBCRYPTO_FILE en la ubicación de libcrypto:
    export OCI_CLI_FIPS_LIBCRYPTO_FILE=</path/to/libcrypto.x.x.x>

    Si no desea ejecutar este comando al principio de cada sesión, puede agregarlo a un archivo your.bashrc o .bash_profile.

    Puede confirmar que la variable de entorno se ha definido correctamente con este comando:

    set | grep OCI_CLI_FIPS_LIBCRYPTO_FILE

Ahora puede continuar con el proceso de instalación estándar que se indica en Inicio rápido.

Verificación de la configuración

Para verificar que CLI esté usando la biblioteca que ha especificado durante la configuración de CLI, ejecute los siguientes comandos en Python. Asegúrese de hacerlo en el mismo entorno que utiliza CLI.

import ssl
ssl.FIPS_mode()

Esto debería devolver 1, lo que indica que SSL está utilizando la biblioteca especificada por la variable de entorno OCI_CLI_FIPS_LIBCRYPTO_FILE.