Como Instalar a Oracle Cloud Infrastructure CLI no Linux e no Windows

Aviso
Este artigo foi atualizado em 2022-03-04, o conteúdo pode estar desatualizado.

Olá Pessoal, tudo bem?

Hoje vamos instalar a ferramenta CLI da Oracle Cloud Infrastructure no Linux e Windows.

Diferente das ferramentas CLI da AWS ou da Azure, a CLI da OCI não tem com um instalador “oficial” o qual poderia facilitar muito, pelo qye vamos fazer a instalação “manual” seguindo a documentação da CLI de Oracle.


Para poder instalar a CLI da OCI, devemos cumprir com os seguintes requisitos:

  • Ter uma conta da Oracle Cloud Infrastructure.
  • Criar um usuário nessa conta, em um grupo com uma política que conceder a autorização desejada. Este usuário pode ser vocé mesmo, outra pessoa ou um sistema que faça chamadas à API.
  • Um par de chaves que vão ser usadas para assinar as solicitudes na API, com a chave pública carregada no Oracle. Apenas o usuário que chamará à API deve possuir a chave privada.

Vamos precisar ter os seguintes pacotes instalados:

  • Python 3.5+
  • gcc
  • libffi-devel
  • python-devel
  • openssl-devel
1
yum install python3 gcc libffi-devel python3-devel openssl-devel

Criamos a pasta .oci, a qual estará na pasta home do usuario:

Linux:

1
mkdir ~/.oci

No Windows abrimos uma terminal de PowerShell e vamos à pasta do usuario:

1
2
cd C:\Users\usuario
mkdir .oci

Geramos uma chave de assinatura API, colocando a localização onde queremos salvar o arquivo e o formato .pem, especificando a pasta .oci, a qual usaremos para nos autenticar ao serviço da OCI:

1
openssl genrsa -out ~/.oci/oci_api_key.pem 4096
1
2
3
Generating RSA private key, 4096 bit long modulus (2 primes)
....++++
..........................................++++

Verificamos que a chave privada possa ser vista apenas pelo usuário dono da conta:

1
chmod 400 ~/.oci/oci_api_key.pem

E agora geramos a chave pública:

1
openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem

Carregamos a nossa chave pública, para isto devemos iniciar sessão em nossa conta da OCI, click no canto superior direito (no icone do nosso perfil)

/images/oci-okit-linux-windows/oci-3.png
Ecrã Usuários

Vamos à opção Usuários, API Keys, e anadimos uma nova.

/images/oci-okit-linux-windows/oci-6.png
Usuários

Colamos só a CHAVE PÚBLICA, e click em Add.

/images/oci-okit-linux-windows/oci-7.png
API Keys

Ali vai se carregar o fingerprint, vamos copiar esse valor e colamos em um Notepad ou em outro editor de textos, já que vamos precisa-lô mais para frente.

/images/oci-okit-linux-windows/oci-8.png
API Keys


Descarregamos e instalamos de uma vez a versão mais atualizada do script de instalação:

1
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

O script vai-nos fazer uma série de perguntas:

  • Em qual pasta gostaria instalar? Podemos colocar uma rota alternativa, neste caso vou usar /home/usuario/oci-cli
1
2
3
===> In what directory would you like to place the install? (leave blank to use '/home/usuario/lib/oracle-cli'): /opt/oci-cli
-- Creating directory '/home/usuario/oci-cli'.
-- We will install at '/home/usuario/oci-cli'.
  • Em qual pasta gostaria de instalar o executable oci?
1
===> In what directory would you like to place the 'oci' executable? (leave blank to use '/home/usuario/bin'): /home/usuario/oci-cli/
  • Em qual pasta gostaria de instalar os scripts da OCI?
1
===> In what directory would you like to place the OCI scripts? (leave blank to use '/home/usuario/bin/scripts'): /home/usuario/oci-cli/bin/scripts/

Vai-nos perguntar se quremos instalar pacotes opcionáis, apertamos ENTER pelo momento:

1
2
===> Currently supported optional packages are: ['db (will install cx_Oracle)']
What optional CLI packages would you like to be installed (comma separated names; press enter if you don't need any optional packages)?: PRESIONAMOS ENTER

Para terminar a configuración, vai-nos peguntar se desejamos modificar o PATH do nosso shell, colocamos Y depois ENTER:

1
===> Modify profile to update your $PATH and enable shell/tab completion now? (Y/n): Y

Indicamos a rota do nosso arquivo .bashrc (no caso de estar usando bash), ou .zshrc (se usaramos zsh):

1
2
3
4
5
6
7
8
9
===> Enter a path to an rc file to update (file will be created if it does not exist) (leave blank to use '/home/usuario/.bashrc'): /home/usuario/.bashrc
-- Backed up '/home/vagrant/.bashrc' to '/home/usuario/.bashrc.backup'
-- Tab completion set up complete.
-- If tab completion is not activated, verify that '/home/usuario/.bashrc' is sourced by your shell.
--
-- ** Run `exec -l $SHELL` to restart your shell. **
--
-- Installation successful.
-- Run the CLI with /home/usuario/oci-cli/oci --help

Recarregamos a nossa shell:

bash

1
source ~/.bashrc

zsh

1
source ~/.zshrc

Verificamos se a instalação foi feita corretamente, vamos consultar a ajuda do programa:

1
oci --help
1
2
3
4
5
6
7
Usage: oci [OPTIONS] COMMAND [ARGS]...

  Oracle Cloud Infrastructure command line interface, with support for
  Audit, Block Volume, Compute, Database, IAM, Load Balancing, Networking,
  DNS, File Storage, Email Delivery and Object Storage Services.

  --- SAÍDA OMITIDA ---
  • Abrimos uma consola de PowerShell como ADMINISTRADOR
  • O instalador permite a execução e término automatico de um script. Para permitir a execução de este, devemos habilitar a política de execução RemoteSigned.

Para configurar a política de execução remota para PowerShell, execute e seguinte comando:

1
Set-ExecutionPolicy RemoteSigned
  • Para executar o script do instalador, execute o seguinte comando:
1
powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1'))"

O script vai-nos fazer uma série de perguntas:

  • Em qual pasta gostaria instalar? Podemos colocar uma rota alternativa, em este caso vou usar /home/usuario/oci-cli
1
2
3
===> In what directory would you like to place the install? (leave blank to use 'C:\Users\usuario\lib\oracle-cli'): C:\Users\usuario\oracle-cli
-- Creating directory 'C:\Users\usuario\oracle-cli'.
-- We will install at 'C:\Users\usuario\oracle-cli'.
  • Em qual pasta gostaria de instalar o executable oci?
1
===> In what directory would you like to place the 'oci.exe' executable? (leave blank to use 'C:\Users\usuario\bin'): C:\Users\usuario\oci-cli\
  • Em qual pasta gostaria de instalar os scripts da OCI?
1
===> In what directory would you like to place the OCI scripts? (leave blank to use 'C:\Users\usuario\oci-cli\bin\scripts'): C:\Users\usuario\oracle-cli\bin\scripts

Vai-nos perguntar se quremos instalar pacotes opcionáis, apertamos ENTER pelo momento:

1
2
===> Currently supported optional packages are: ['db (will install cx_Oracle)']
What optional CLI packages would you like to be installed (comma separated names; press enter if you don't need any optional packages)?: PRESIONAMOS ENTER

Para terminar a configuración, vai-nos peguntar se desejamos modificar o PATH do nosso Powershell, colocamos Y depois ENTER:

1
2
3
4
5
6
7
8
===> Modify PATH to include the CLI and enable tab completion in PowerShell now? (Y/n): Y
--
-- ** Close and re-open PowerShell to reload changes to your PATH **
-- In order to run the autocomplete script, you may also need to set your PowerShell execution policy to allow for running local scripts (as an Administrator run Set-ExecutionPolicy RemoteSigned in a PowerShell prompt)
--
-- Installation successful.
-- Run the CLI with C:\Users\usuario\oci-cli\oci.exe --help
VERBOSE: Successfully installed OCI CLI!

Fechamos PowerShell e vamos a abri-lô de novo.

Verificamos se a instalação foi feita corretamente, vamos consultar a ajuda do programa:

1
oci --help
1
2
3
4
5
6
7
Usage: oci [OPTIONS] COMMAND [ARGS]...

  Oracle Cloud Infrastructure command line interface, with support for
  Audit, Block Volume, Compute, Database, IAM, Load Balancing, Networking,
  DNS, File Storage, Email Delivery and Object Storage Services.

  --- SAÍDA OMITIDA ---

Executamos o comando:

1
oci setup config

Vai-nos fazer umas perguntas, primeiro a localização do arquivo config, vamos permitir que crie o arquivo na rota padrão:

1
Enter a location for your config [/home/usuario/.oci/config]:

O seguinte que nos vai pedir, é o usuário OCID:

1
Enter a user OCID:

Pelo que devemos iniciar sessão na nossa conta OCI, vamos ao icone de Perfil e click no nosso usuário cadastrado.

/images/oci-okit-linux-windows/oci-2.png
Ecrã Principal

Copiamos a nossa OCID de usuário e a colocamos no parámetro user.

/images/oci-okit-linux-windows/oci-3.png
Ecrã Usuarios

Logo colocamos a OCID da conta (tenancy):

1
Enter a tenancy OCID:

Opção Tenancy:

/images/oci-okit-linux-windows/oci-4.png
Ecrã Usuarios

Copiamos a nossa OCID da cuenta e a colocamos no parámetro tenancy:

/images/oci-okit-linux-windows/oci-5.png
Ecrã Tenancy

Depois nos vai pedir a região principal, no meu caso será us-ashburn-1:

1
2
3
4
5
6
Enter a region (e.g. ap-chiyoda-1, ap-chuncheon-1, ap-hyderabad-1, ap-melbourne-
1, ap-mumbai-1, ap-osaka-1, ap-seoul-1, ap-sydney-1, ap-tokyo-1, ca-montreal-1,
ca-toronto-1, eu-amsterdam-1, eu-frankfurt-1, eu-zurich-1, me-jeddah-1, sa-saopa
ulo-1, uk-gov-cardiff-1, uk-gov-london-1, uk-london-1, us-ashburn-1, us-gov-ashb
urn-1, us-gov-chicago-1, us-gov-phoenix-1, us-langley-1, us-luke-1, us-phoenix-1
, us-sanjose-1): us-ashburn-1

Vai-nos perguntar se desejamos gerar uma nova chave o se queremos carregar uma existente, como já tihamos criado ao começo do artigo, presionamos “n”:

1
2
Do you want to generate a new API Signing RSA key pair? (If you decline you will
 be asked to supply the path to an existing key.) [Y/n]: n

E vamos indicar rota onde se encontra localizada a chave privada:

1
2
3
Enter the location of your API Signing private key file: /home/vagrant/.oci/oci_api_key.pem
Fingerprint: 77:3d:77:73:::::::::::::::::
Config written to /home/usuario/.oci/config

A maneira manual, é criar o arquivo de configuração em /home/usuario/.oci/config, com o seu editor de textos favorito:

Fedora 32:

1
vim /home/usuario/.oci/config

Em Windows 10 Pro, abrimos um Notepad e vamos escrever os seguintes parámetros:

1
2
3
4
5
6
[DEFAULT]
user=ocid1.user.oc1..aaaaaaaak6z......
fingerprint=3b:7e:37:ec:a0:86:1....
key_file=/home/usuario/oci-designer-toolkit/containers/oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaawpqblfem........
region=us-phoenix-1

Onde:

  • user é o dentificador OCID do usuario na OCI
  • fingerprint é a impressão digital da chave ssh
  • key_file é a tota onde se encontra armazenada a chave privada ssh (a guardamos em /home/usuario/.oci/oci_api_key.pem) No Windows substituimos pela rota do usuario (normalmente C:\Users\usuario.oci\oci_api_key.pem)
  • tenancy é o identificador OCID da tua conta
  • region é a região padrão onde vais deployar a infraestrctura

Y pronto, deste maneira teremos instalado e configurado o cliente CLI da OCI em nosso sistema.

Espero que tinham gostado deste tutorial, até a próxima!