Trabalhando com a Imagem do Contêiner da CLI do OCI
Esta seção aborda como instalar e usar a Imagem do Contêiner da CLI do OCI.
A Imagem do Contêiner da CLI (Interface de Linha de Comando) do OCI (Oracle Cloud Infrastructure) é uma imagem do Docker que tem as ferramentas de CLI do OCI pré-instaladas. Esta seção aborda como instalar e usar a Imagem do Contêiner da CLI do OCI.
Requisitos
Para usar a imagem de contêiner da CLI do OCI, você deve ter:
- Um mecanismo de runtime de contêiner compatível com padrões, como Docker ou Podman
- Uma tenancy do Oracle Cloud Infrastructure
- Uma conta de usuário nessa tenancy que pertença a um grupo ao qual políticas apropriadas foram designadas para conceder as permissões necessárias.
- Um par de chaves usado para assinar solicitações de API, com a chave pública carregada por upload para o sistema Oracle. Somente o usuário que chama a API deve possuir a chave privada. Para obter mais informações, consulte Configurando a CLI.
Para ver exemplos de como configurar um novo usuário, grupo, compartimento e política, consulte Adicionando Usuários. Para obter uma lista de outras políticas típicas do OCI, consulte a lista de políticas comuns.
Usando a imagem de contêiner da CLI do OCI
$ docker pull ghcr.io/oracle/oci-cli:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/oracle/oci-cli latest 387639e80a9a 3 days ago 711MB
oci
para torná-la uma substituta direta perfeita:$ docker tag ghcr.io/oracle/oci-cli:latest oci
$ docker images oci
REPOSITORY TAG IMAGE ID CREATED SIZE
oci latest 387639e80a9a 3 days ago 711MB
$ docker run -v "$HOME/.oci:/oracle/.oci" oci os ns get
{
"data": "demo-tenancy"
}
$ alias oci='docker run --rm -it -v "$HOME/.oci:/oracle/.oci" oci'
$ oci os ns get
{
"data": "demo-tenancy"
}
Autenticação de Chave de Assinatura da API
Este é o método de autenticação padrão usado por todos os SDKs do OCI e pela CLI do OCI. Para usar esse método, monte um local no sistema host para o diretório /oracle/.oci
dentro do contêiner.
Se você tiver configurado anteriormente a CLI do OCI na máquina host, a maneira mais fácil de fornecer acesso à sua chave de assinatura de API será mapear seu diretório $HOME/.oci
para /oracle/.oci/
dentro do contêiner.
$ docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli os ns get
{
"data": "example"
}
Você também pode informar a variável de ambiente OCI_CLI_CONFIG_FILE
para usar outro local para o arquivo config
da CLI do OCI.
Certifique-se de que o campo
key_file
em $HOME/.oci/config
use o caractere ~
para que o caminho seja resolvido dentro e fora do contêiner; por exemplo: key_file=~/.oci/oci_api_key.pem
. $HOME/.oci
:mkdir $HOME/.oci
docker run --rm -it -v "$HOME/.oci:/oracle/.oci" ghcr.io/oracle/oci-cli setup config
Para obter mais informações, consulte Preparando o Arquivo de Configuração.
Autenticação de token de sessão
docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-p 8181:8181 \
ghcr.io/oracle/oci-cli session authenticate
Para obter mais informações, consulte Autenticação Baseada em Token para a CLI.
Autenticação do controlador de instâncias
--auth instance_principal
:docker run --rm -it ghcr.io/oracle/oci-cli --auth instance_principal os ns get
OCI_CLI_AUTH
:docker run --rm -it -e OCI_CLI_AUTH=instance_principal ghcr.io/oracle/oci-cli os ns get
Se você criou um alias de shell, adicione-o à definição de alias.
Para obter mais informações, consulte Métodos de Autenticação do OCI SDK.
Acesso a arquivos locais
A maneira mais simples de permitir que a CLI do OCI em execução dentro do contêiner acesse arquivos no host é vincular a montagem de um diretório do host ao contêiner.
$HOME/scratch
é vinculado montado como /oracle/scratch
no contêiner para que os arquivos desse diretório possam ser submetidos a upload em massa para o OCI Object Storage usando a CLI do OCI:docker run --rm -it \
-v "$HOME/.oci:/oracle/.oci" \
-v "$HOME/scratch:/oracle/scratch" \
ghcr.io/oracle/oci-cli os object bulk-upload -ns <namespace> -bn <bucket name> --src-dir /oracle/scratch/
Criando com base na Origem
O código de origem necessário para criar a imagem de contêiner da CLI do OCI pode ser encontrado em https://github.com/oracle/docker-images/tree/main/OracleCloudInfrastructure/oci-cli.