25 de mayo de 2022

Como instalar y configurar ocicli para gestionar Oracle OCI

 Hola a todos, el siguiente post es simplemente la explicación de los pasos necesarios para crear una VM en Oracle OCI que nos permita tener instalado ocicli para manipular nuestros recursos en la nube por medio de apis o scripts.

Los ejemplos que voy a mostrar van a ser super simples, pero por supuesto que se le puede dedicar más tiempo y armar scripts con lógica más interesante.

Que vamos a necesitar?

  1. Una VM IaaS.
  2. Un usuario de OCI  con los permisos adecuados.
  3. Instalar y configurar el software
  4. Probar comandos.

1. VM:

Lo primero que necesitamos es una pequeña VM para instalar ocicli y desde la cual estariamos ejecutando los comandos. Esta VM se puede crear con mínimos recursos, así que no sería una VM que nos genere un gran costo de mantenimiento. También se podria usar cualquier VM dentro de nuestra infraestrcutura.

Consideremos que esta VM tiene que estar dentro de la misma subnet de los recurso que necesitemos manipular o tener las reglas adecuadas.

Para crear una instancias, pueden seguir el siguiente post: creando-una-vm-de-linux

2. Usuario de OCI.

Para esto vamos a crear un usuario de servicio del tipo IAM sin contraseña o email. Ya que la autentificación se va a realizar por medio de pares de Keys.


Como una buena práctica generé un grupo y se lo asigne a este mismo usuario.




Una vez creado el usuario en este paso copien en un notepad el OCID del usuario
ejemplo: ocid1.user.oc1..aaabbbbbza6smearcrmasdg1g4c11|5a3dwxnnbno6hjx4l5cdwb4t7ev1svsq

En este punto es necesario crear una policy para darle permisos al grupo, se podria dar sobre todo el tenant o un compartment. Esto va a ser el alcance que tenga este usuario y los permisos sobre los recursos que pueda manipular.

En mi caso solo le voy a dar permiso para manicupar un EXACS

Dentro de Identity, vamos a Policies





3. Instalación y Configuración del Software

Lo primero que tenemos que hacer es instalar las librerias y tools a nivel de Sistema Operativo, en mi caso un Linux 8. La referencia la podemos ver en : https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/cliinstall.htm#InstallingCLI__oraclelinux8

sudo dnf -y install oraclelinux-developer-release-el8



sudo dnf install python36-oci-cli

The CLI will be installed to the Python site packages:


/usr/lib/python3.6/site-packages/oci_cli
/usr/lib/python3.6/site-packages/services

Documentation and examples will be installed in the /usr/share/doc/python36-oci-cli-<version>/ directory.

Para los siguientes pasos tenemos que tener 3 datos fundamentales

User OCID, Tenant OCID y conocer nuestra región en OCI.


# sudo su - ocicliusr
$ oci -version
3.9.0


$ oci setup config

This command provides a walkthrough of creating a valid CLI config file.
The following links explain where to find the information required by this
script:
User API Signing Key, OCID and Tenancy OCID:
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#Other

Region:
https://docs.cloud.oracle.com/Content/General/Concepts/regions.htm
General config documentation:
https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm
Enter a location for your config [/home/ocicliusr/.oci/config]:
Enter a user OCID: ocid1.user.oc1..aaaffffffza6smfqrcrm6asdg4ckk5a3dwxasdgfo6hjasdcdwbasdebywvsq

Enter a tenancy OCID: ocid1.tenancy.oc1..aadddddaaj3qj3qb26sasdf27q7mwasdg43zw52obasdg3cnjk12vn433lba

Enter a region by index or name(e.g.

1: af-johannesburg-1, 2: ap-chiyoda-1, 3: ap-chuncheon-1, 4: ap-dcc-canberra-1, 5: ap-hyderabad-1,6: ap-ibaraki-1, 7: ap-melbourne-1, 8: ap-mumbai-1, 9: ap-osaka-1, 10: ap-seoul-1,11: ap-singapore-1, 12: ap-sydney-1, 13: ap-tokyo-1, 14: ca-montreal-1, 15: ca-toronto-1,16: eu-amsterdam-1, 17: eu-frankfurt-1, 18: eu-marseille-1, 19: eu-milan-1, 20: eu-stockholm-1,21: eu-zurich-1, 22: il-jerusalem-1, 23: me-abudhabi-1, 24: me-dcc-muscat-1, 25: me-dubai-1,26: me-jeddah-1, 27: sa-santiago-1, 28: sa-saopaulo-1, 29: sa-vinhedo-1, 30: uk-cardiff-1,31: uk-gov-cardiff-1, 32: uk-gov-london-1, 33: uk-london-1, 34: us-ashburn-1, 35: us-gov-ashburn-1,36: us-gov-chicago-1, 37: us-gov-phoenix-1, 38: us-langley-1, 39: us-luke-1, 40: us-phoenix-1,41: us-sanjose-1): 28

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]: y

Enter a directory for your keys to be created [/home/ocicliusr/.oci]:[ENTER]
Enter a name for your key [oci_api_key]:[ENTER]
Public key written to: /home/ocicliusr/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase):[ENTER]
Private key written to: /home/ocicliusr/.oci/oci_api_key.pem
Fingerprint: 91:8f:31:7e:15:48:4f:a3:da:a6:b7:d3:b2:74:15:12
Config written to /home/ocicliusr/.oci/config


If you haven't already uploaded your API Signing public key through the
console, follow the instructions on the page linked below in the section
'How to upload the public key':

https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2

##Guardar la public key

$ cat 
/home/ocicliusr/.oci/oci_api_key_public.pem


Una vez instalado OCI, tenemos que agregar la key publica al usuario.

Dentro del menu de OCI en el perfil del usuario que creamos en el paso 1, vamos a los recursos (abajo a la izquierda) y hacemos click en API Keys, luego en Add Key.

Una vez que pegamos la publick key, nos genera el config file del oci, el cual tenemos que copiar para crear dentro del home del usuario de linux. En /home/user/.oci/config (como muestra la imagen)



4. Probar comandos.

Ahora solo nos queda jugar con los comandos de oci-cli, hay que destacar que estas apis tienen constantes actualizaciones, asi que recomiendo validar cada tanto que no exista una versión nueva.

Dejo el link de referencia a todos los comandos de oci-cli: click 

Ejemplo para realizar un stop de una instancia iaas:

oci compute instance action --action stop --instance-id <OCID de la Instancia>

Ejemplo para realizar un start de una instancia iaas:

oci compute instance action --action start --instance-id <OCID de la Instancia>


Realmente hay muchisimos comandos que se pueden investigar. Los output de esos son en formato json que los podrian manipular par mostrar en cualquier aplicación compatible con la lectura de json files.

Para obtener ayuda desde la misma linea de comando, pueden ejecutar.

oci --help



si te gusto te invito a seguirme: SEGUIR


No hay comentarios.:

Publicar un comentario