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.
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:
- Valor especificado en la opción
--profile
. - Valor especificado en la variable de entorno
OCI_CLI_PROFILE
. - Valor especificado en el campo
default_profile
de la secciónOCI_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 comandooci 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.
[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)"
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"
$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
- 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/
- Determine la ubicación de la versión compatible con FIPS de libcrypto:
ls -l /usr/lib64/libcrypto*
- 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.