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.
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á:
- O valor especificado na opção
--profile
. - O valor especificado na variável de ambiente
OCI_CLI_PROFILE
. - O valor especificado no campo
default_profile
na seçãoOCI_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 comandooci 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.
[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)"
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"
$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
- 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/
- Determine a localização da versão compatível da biblioteca libcrypto compatível com a FIPS:
ls -l /usr/lib64/libcrypto*
- 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.