Como ya lo habíamos mencionado, Terraform es una herramienta de orquestación de recursos para distintos proveedores de Cloud. Con lo cual, todos los recursos y servicios en la nube se pueden crear/eliminar y manipular bajo el concepto de «Infraestructura como código», más detalles en https://dbligarius.mktpower.cl/que-es-terraform/

Lo que vamos a realizar a continuación es una simple creación de una base de datos en OCI (Automatic Transaction Processing)
¿Qué necesitamos?
- Instalación de Terraform : https://www.terraform.io/downloads.html
- Visual Studio Code (es una recomendación para editar código) : https://code.visualstudio.com/download
- Cuenta de OCI (puede ser Free Tier) : https://www.oracle.com/cl/cloud/
Para realizar nuestro ejemplo, vamos a definir 5 archivos para Terraform
Los primeros archivos procesados son la extensión tfvars, posterior a esto se procesan los archivos con extensión .tf, se podría generar sólo un archivo .tf, por ejemplo main.tf pero la idea es ordenar y estructuras los resources, los outputs, variables, provider, etc.
- provider.tf : Archivo que contiene los parámetros para realizar conexión a nuestro OCI Provider

- variables.tf : Archivo que contiene las variables que son referenciadas desde el archivo provider.tf

Comandos a tener en cuenta : Declaramos una variable que contenga el valor 21c, esta variable será utilizada en la creación de nuestra base de datos en versión 21c
- autonomous_database_wallet.tf : Archivo que contiene el recurso de Wallet que crearemos para nuestra base de datos autónoma .

Comandos a tener en cuenta : El resource local_file es un plugins que se descarga cuando se ejecuta el comando terraform init y este permite entre otras cosas escribir desde donde se ejecuta el comando terraform, para este caso en partícular, genera el wallet para la conexión hacía nuestra base de datos autonoma
- outputs.tf : Archivo que contendrá los comandos output (comandos HCL) de los resources que generemos.

- atp.tf : Archivo que contiene el recurso de base de datos autónoma

Comandos a tener en cuenta : Dentro del resource del tipo «oci_database_autonomous_database» existe un parámetro llamado db_version, a este parámetro le asignamos el valor de la variable version_motor que contiene el valor 21c
- terraforms.tfvars : Archivo que contiene los seteos iniciales de nuestras variables, esta es sólo una de las formas en que se pueden setear las variables iniciales para Terraform

Una vez generados los archivos procedemos a ejecutar los comandos de Terraform.
terraform init : Inicialización de los plugins y validación de código.

En este punto se descargan los plugins de los provider utilizados, como por ejemplo local, oci y random

terraform plan : Se genera el plan de ejecución de la creación de los resources en nuestro CLOUD

terraform apply : Aplicación del código en el cloud para generar los recursos que fueron codificados.


Y al acceder a nuestra cloud , podemos ver el recurso generado

Iremos generando nuevos posts con información relacionada a bases de datos 21c y la generación con terraform, para que vean y comprueben lo increíble y apasionante de estas herramientas.
Espero les sirva 😉