[OCI] OCI-cli y su configuración


“OCI-cli” es una herramienta para administrar los diferentes recursos de nuestra tenancy desde la línea de comandos. Con esta herramienta podemos hacer desde lo más básico, como sería por ejemplo obtener una lista de las distintas regiones o algo más avanzando como podría ser el mantenimiento de un bucket.
La primera diferencia que tenemos que tener es si nuestro entorno es un IaaS o un PaaS ¿Por qué? Porque, a nivel de IaaS, necesitamos realizar la instalación manualmente.
Para instalarlo a nivel de IaaS debemos ejecutar el siguiente script “bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"“
[opc@~]# oci --version
-bash: oci: command not found
[opc@~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16926 100 16926 0 0 165k 0 --:--:-- --:--:-- --:--:-- 166k
[opc@ociosgodcrac ~]$ oci --version
/home/opc/lib/oracle-cli/lib64/python3.6/site-packages/oci/_vendor/httpsig_cffi/sign.py:10: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
from cryptography.hazmat.backends import default_backend # noqa: F401
3.50.3
Pero en mi caso estoy recibiendo el warning “# noqa: F401” con lo que no podremos usar de manera eficiente la herramienta. Debemos usar un virtual environment.
Vamos a instalar python 3.8 y después configuraremos el virtual environment.
[opc@~]$ sudo yum install -y oracle-softwarecollection-release-el7
[opc@~]$ sudo yum install -y scl-utils rh-python38
[opc@~]$ scl enable rh-python38 bash
[opc@~]$ python --version
Python 3.8.18
## cfg virtual environment
[opc@ ~]$ mkdir virtual
[opc@ ~]$ cd virtual/
[opc@ virtual]$ python3.8 -m venv oracle-cli
[opc@ virtual]$ source oracle-cli/bin/activate
(oracle-cli) [opc@virtual]$ pip install --upgrade pip
(oracle-cli) [opc@virtual]$ pip install oci-cli
(oracle-cli) [opc@virtual]$ oci -v
3.50.3
Listo. Ahora cada vez que queramos entrar en nuestro virtual environment deberemos ejecutar el siguiente comando “. virtual/oracle-cli/bin/activate“.
Una vez que tengamos lista la herramienta para usarla tanto a nivel de IaaS como de PaaS, debemos configurarla ¿Cómo? Lo primero que tenemos que hacer es loguearnos en nuestra tenancy e ir a nuestro profile
Una vez dentro podemos ver información de nuestra cuenta. Lo que nos interesa es ir a la parte de Resources, que se encuentra en la parte inferior izquierda, sección API Keys.
Ahí pulsamos en “Add API key“
Ahí tendremos dos opciones, que OCI genere nuestra clave rsa o seamos nosotros quien generemos la clave. Vamos a dejar que OCI nos genere la clave, así que guardamos tanto la clave privada como la pública. Una vez guardada y añadida nuestra clave, tendremos la siguiente ventana.
Esta información es toda la que debe contener el archivo config. Este archivo es necesario para poder usar la herramienta, un ejemplo de su uso:
[opc@~]$ oci iam region list
ERROR: Could not find config file at /home/opc/.oci/config
Do you want to create a new config file? [Y/n]: n
Aquí como no tenemos aún configurado dicho archivo, nos lo reclama.
[opc@~]$ mkdir .oci && chmod 700 .oci && cd .oci
[opc@.oci]$ ls -lstra
total 20
4 -rw------- 1 opc opc 1704 Dec 10 11:28 oci_api_key.pem
4 -rw------- 1 opc opc 451 Dec 10 11:29 oci_api_key_public.pem
4 -rw------- 1 opc opc 302 Dec 10 11:33 config
4 drwxrwxr-x 2 opc opc 4096 Dec 10 11:33 .
4 drwx------ 4 opc opc 4096 Dec 12 09:48 ..
En el directorio he incluido ambas claves rsa que me ha generado OCI junto con el archivo config. Todos los archivos tiene únicamente permisos el propietario, el grupo y resto no tendrán ni acceso en modo lectura.
A nivel de config, debemos copiar el texto que nos proporciona OCI. Únicamente modificamos la variable key_file para indicar donde se encuentra nuestra clave rsa.
[opc@.oci]$ cat config
[DEFAULT]
user=XXXXXX
fingerprint=XXXXXX
tenancy=XXXXXX
region=XXXXXX
key_file=/home/opc/.oci/oci_api_key.pem
Guardamos y probamos
- A nivel de PaaS
[opc@ ~]$ oci iam region list
{
"data": [
{
"key": "AMS",
"name": "eu-amsterdam-1"
},
{
- A nivel de IaaS
(oracle-cli) [opc@ ~]$ oci iam region list
{
"data": [
{
"key": "AMS",
"name": "eu-amsterdam-1"
},
{
¡Espero que os sirva!
Subscribe to my newsletter
Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

David Sanz
David Sanz
Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.