Configurando a CLI

Você pode usar essas configurações opcionais para estender a funcionalidade da CLI. A CLI suporta o uso de um arquivo para configurações específicas. Você pode:

  • Especificar um perfil padrão.
  • Definir valores padrão para as opções de comando, de forma que você não precise digitá-los na linha de comando.
  • Definir aliases para comandos. Por exemplo, usar "ls" como um alias para list.
  • Definir aliases para as opções. Por exemplo, usar "--ad" como um alias para --availability-domain.
  • Definir consultas nomeadas que são especificadas para a opção --query em vez de digitar uma expressão JMESPath na linha de comando.

A CLI também suporta o uso de variáveis de ambiente para especificar os padrões de algumas opções. Consulte Variáveis de Ambiente da CLI para obter mais informações.

Arquivo de Configuração da CLI

O local padrão e o nome do arquivo de configuração específico da CLI são ~/.oci/oci_cli_rc, mas você pode usar a variável de ambiente OCI_CLI_RC_FILE para modificar onde a CLI procura um arquivo de configuração e seus valores default na inicialização.

Você também pode especificar explicitamente um arquivo de configuração da CLI com a opção --cli-rc-file ou com a opção --defaults-file legada. Por exemplo:

# 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 configurar um arquivo oci_cli_rc, execute o comando a seguir.


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

Esse comando cria o arquivo especificado que inclui exemplos de aliases de comandos padrão, aliases de parâmetros e consultas nomeadas.

Observação

Se estiver utilizando o Windows, você deverá usar a barra invertida como separador de diretório nos nomes de caminhos, em vez da barra.

Especificando um Perfil Padrão

Especifique um perfil padrão na seção OCI_CLI_SETTINGS do arquivo de configuração da CLI. O exemplo a seguir mostra como especificar um perfil padrão chamado IAD. A CLI procura um perfil chamado IAD no arquivo ~/.oci/config ou em qualquer outro arquivo que você especifique usando a opção --config-file ou a variável de ambiente OCI_CLI_CONFIG_FILE.

[OCI_CLI_SETTINGS]
default_profile=IAD

Você também pode especificar um perfil padrão usando a opção --profile ou definindo a variável de ambiente OCI_CLI_PROFILE.

Se um valor de perfil padrão tiver sido especificado em vários locais, a ordem de precedência será:

  1. O valor especificado na opção --profile.
  2. O valor especificado na variável de ambiente OCI_CLI_PROFILE.
  3. O valor especificado no campo default_profile na seção OCI_CLI_SETTINGS do arquivo de configuração CLI.

Especificando Valores Padrão

A CLI suporta o uso de valores padrão para que você não precise digitá-los na linha de comando. Por exemplo, em vez de digitar um --compartment-id em cada comando de inicialização de instância ou ter que continuar especificando o --namespace ao usar comandos do serviço Object Storage. Você pode especificar essas informações em um arquivo de valores padrão.

Os valores padrão podem ser aplicados em diferentes níveis, do geral ao específico:

  • Globalmente, em todos os comandos da CLI.
  • Para um serviço específico, como Compute ou Object Storage.
  • Para um grupo específico, como comandos relacionados à exportação de imagens.
  • Para um comando específico.

Os valores padrão são tratados hierarquicamente, com valores específicos que têm uma ordem de precedência mais alta que os valores gerais. Por exemplo, se houver um valor definido globalmente para compartment-id e um compartment-id específico definido para o comando compute instance launch, a CLI usará o valor do compute instance launch em vez do padrão global.

Prioridade de Valor de Comando

Se um valor for fornecido na linha de comando também existir em --cli-rc-file, o valor da linha de comando terá prioridade. Para um comando com opções que utilizam vários valores, os valores são totalmente obtidos da linha de comando ou de --cli-rc-file. As 2 origens não foram mescladas.

Sintaxe do Arquivo de Valores Padrão

O arquivo --cli-rc-file pode ser dividido em seções específicas com uma ou mais chaves por seção.

Seções

No próximo exemplo, o arquivo tem duas seções, com uma chave em cada seção. Para especificar qual seção usar, use a opção --profile na CLI.

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

Chaves

Os nomes das chaves se baseiam nas opções da linha de comando, mas não usam hífen duplo (--) à esquerda. Por exemplo, a chave para --image-id é image-id. Você pode especificar chaves para um único valor, vários valores e flags.

  • Chaves para Valores Únicos. O próximo exemplo mostra como especificar valores-chave em diferentes níveis e com um escopo específico.

    [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
  • Chaves para Vários Valores. Algumas opções, como --include e --exclude no comando oci os object bulk-upload podem ser especificadas mais de uma vez. Por exemplo:

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

    O próximo exemplo mostra como você inseriria os valores --include no arquivo --cli-rc-file

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

    No exemplo anterior, um valor é fornecido para cada linha, e cada linha deve ser recuada abaixo de sua chave. Você pode usar tabulações ou espaços, e o espaço de recuo não importa. Também é possível colocar um valor na mesma linha da chave, adicionar mais valores nas próximas linhas e usar uma instrução de caminho para um valor. Por exemplo:

    [DEFAULT]
    os.object.bulk-upload.include = *.pdf
    			*.txt
    			*.png
    			my-subfolder/*.tiff
  • Chaves para Flags. Algumas opções de comando são flags, como --force, que usam um valor booliano. Para definir um flag para a opção --force, use o comando a seguir.

    os.object.delete.force=true

Especificando Aliases de Comando

Especifique consultas nomeadas na seção OCI_CLI_COMMAND_ALIASES do arquivo de configuração da CLI. Há dois tipos de aliases: aliases globais e aliases de sequência de comandos. O exemplo a seguir mostra 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	 								

Se quiser definir valores padrão para opções no seu arquivo de configuração da CLI, você poderá usar os nomes de aliases definidos. Por exemplo, se você tiver -ls como um alias para --list, poderá definir um padrão para um domínio de disponibilidade ao listar instâncias usando o comando a seguir.

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

Especificando Aliases para Opções

Especifique aliases para opções na seção OCI_CLI_PARAM_ALIASES do arquivo de configuração da CLI. Os aliases para opções são aplicados globalmente. O exemplo a seguir mostra alguns aliases para opções de comando.


[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

Se quiser definir valores padrão para opções no seu arquivo de configuração da CLI, você poderá usar os nomes de aliases definidos. Por exemplo, se tiver -ad como um alias para --availability-domain, você poderá definir um padrão para um domínio de disponibilidade ao listar instâncias usando o comando a seguir.

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

Especificando Consultas Nomeadas

Se usar o parâmetro --query para filtrar ou manipular a saída, você poderá definir consultas nomeadas em vez de usar uma expressão JMESPath na linha de comando.

Especifique consultas nomeadas na seção OCI_CLI_CANNED_QUERIES do arquivo de configuração CLI.

Exemplos de Consultas Nomeadas
[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:]				

Você pode fazer referência a qualquer uma dessas consultas usando esta sintaxe: query://<query name>.

Por exemplo, para obter o id e o nome para exibição de uma lista, execute o comando a seguir.

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

Ativando o Preenchimento Automático

Se você tiver usado o instalador da CLI, não precisará configurar o preenchimento automático porque ele estará ativado normalmente.

Para ativar o preenchimento automático (preenchimento da guia) em uma instalação manual da CLI, execute o comando a seguir.

oci setup autocomplete

Para ativar o preenchimento automático individualmente a cada sessão, execute o comando a seguir.

eval "$(_OCI_COMPLETE=source oci)"
Observação

Suporte para Preenchimento Automático no Windows

O preenchimento automático no Windows só será suportado se você estiver usando o PowerShell. Um script é executado para ativar esse recurso. Entretanto, você deve alterar a política de execução do PowerShell para RemoteSigned. Para configurar essa política, execute o comando a seguir na linha de comando do PowerShell.

Set-ExecutionPolicy RemoteSigned

Especificando um Servidor Proxy

Se o seu ambiente exigir o uso de um servidor proxy para solicitações HTTP de saída, você poderá especificar a definição de proxy usando uma variável de ambiente.

Para configurar um servidor proxy, defina as variáveis de ambiente http_proxy, https_proxy, HTTP_PROXY e HTTPS_PROXY para o servidor proxy correto em seu ambiente.

Por exemplo, em um ambiente de shell Linux ou Unix:

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

Usando Bibliotecas Validadas pelo Padrão FIPS

A CLI pode ser configurada para usar bibliotecas validadas pelo padrão FIPS no Linux. A CLI é criada no Oracle Cloud Infrastructure SDK para Python e utiliza bibliotecas criptográficas no nível do sistema operacional.

Configurando o Ambiente

  1. Verifique se a versão instalada do OpenSSL é compatível com o padrão FIPS. Execute o seguinte comando:
    openssl version

    Se a expressão "fips" não fizer parte do nome da versão, você deverá fazer o upgrade do OpenSSL para uma versão compatível com o FIPS. Você pode fazer o download das versões mais recentes do OpenSSL em: https://www.openssl.org/source/

  2. Determine a localização da versão compatível da biblioteca libcrypto compatível com a FIPS:
    ls -l /usr/lib64/libcrypto*
  3. Defina a variável de ambiente OCI_CLI_FIPS_LIBCRYPTO_FILE com o local da biblioteca libcrypto:
    export OCI_CLI_FIPS_LIBCRYPTO_FILE=</path/to/libcrypto.x.x.x>

    Se você não quiser executar esse comando no início de cada sessão, poderá adicioná-lo ao arquivo your.bashrc ou bash_profile.

    Você pode confirmar que a variável de ambiente está definida corretamente com este comando:

    set | grep OCI_CLI_FIPS_LIBCRYPTO_FILE

Agora você pode prosseguir com o processo de instalação padrão descrito em Início Rápido

Verificando a Configuração

Para verificar se a CLI está usando a biblioteca especificada durante a Configuração da CLI, execute os comandos a seguir no Python. Certifique-se de fazer isso no mesmo ambiente usado pela CLI.

import ssl
ssl.FIPS_mode()

Isso deverá retornar 1, indicando que o protocolo SSL está usando a biblioteca especificada pela variável de ambiente OCI_CLI_FIPS_LIBCRYPTO_FILE.