Oracle XE con Vagrant
Tags: oracle, spanish, xe, virtualbox
Published: 2021-02-15 02:46:18

# Usar una VM en lugar de tu equipo
He visto muchos blogs en español en los que explican cómo realizar la instalación de Oracle XE 18c en diversos sistemas operativos y todos ellos asumen que la instalación se realizará directamente sobre tu equipo de trabajo. Aunque esto no está mal, mi experiencia me ha enseñado que no es una buena idea instalar XE directamente en el sistema operativo de tu computador principal: las configuraciones del equipo pueden cambiar a medida que vas instalando nuevas aplicaciones y/o servicios, haciendo que tu instalación de XE se pueda volver inestable (o de hecho todo tu sistema operativo, sobre todo en las instalaciones en Windows).

El proceso que voy a explicarles es muy similar a usar *virtualenv* en Python para crear ambientes virtuales para las librerías que utilizarás en tus aplicaciones, o a la creación de contenedores con Docker para [crear máquinas de desarrollo completas](https://medium.com/rate-engineering/using-docker-containers-as-development-machines-4de8199fc662). De esta forma tienen un ambiente dedicado exclusivamente al servicio con el que desean trabajar.

# Vagrant para aliviar el proceso
No es necesario reinventar la rueda. Por lo general los tutoriales en español nos guían por el proceso completo de configuración del sistema operativo donde instalaremos la base de datos, incluyendo la instalación de paquetes, apertura de puertos, etc. Sin embargo ya Oracle ha publicado *scripts* que pueden aliviar la tarea.

[Vagrant](https://www.vagrantup.com/intro) es una herramienta para construir y administrar máquinas virtuales. Básicamente nos permite utilizar *scripts* con una configuración predefinida para la creación de una máquina virtual. La ventaja principal es que es posible usar estos *scripts* para crear tantas máquinas virtuales como necesites y todas ellas tendrán la misma configuración.

En este procedimiento utilizaremos VirtualBox para administrar la máquina virtual de Oracle XE, si aun no tienen instalado VirtualBox pueden seguir las [instrucciones](https://www.virtualbox.org/wiki/Downloads) de instalación para su sistema operativo. Además, también debe instalar Vagrant siguiendo estas [instrucciones](https://learn.hashicorp.com/tutorials/vagrant/getting-started-install?in=vagrant/getting-started).

# Iniciar la instalación
Una vez que VirtualBox y Vagrant están instalados procederemos a descargar los scripts de Oracle que se encuentran en este [repositorio](https://github.com/oracle/vagrant-projects) en GitHub. Pueden clonarlo o descargarlo totalmente y luego descomprimir el archivo en un directorio local de su preferencia. 

En este ejemplo usaré un equipo con Ubuntu 20.04 como anfitrión, aunque las instrucciones son las mismas para cualquier sistema operativo.

![Directorio vagrant-projects](https://dev-to-uploads.s3.amazonaws.com/i/hs1mrdk2qv7rszgmu8x2.png)

En mi caso hice una clonación del repositorio, en la imagen anterior se ve el contenido del directorio.

Antes de iniciar la creación de la máquina virtual, es importante hacer notar que si es la primera vez que estamos ejecutando Vagrant en nuestro equipo es recomendable tener una buena conexión a internet, ya que el *script* descargará tanto la imagen del sistema operativo (Oracle Linux 7) y el instalador de la base de datos XE.

Para iniciar la creación de la máquina virtual de Oracle XE 18c procederemos al directorio `vagrant-projects/OracleDatabase/18.4.0-XE` y ejecutaremos el comando `vagrant up`.

![Inicio con vagrant up](https://dev-to-uploads.s3.amazonaws.com/i/pahz9wfs03a7rfzugo19.png)

El proceso de instalación se encargará de:

- Descargar e instalar el sistema operativo (Oracle Linux 7)
- Descargar e instalar las dependencias necesarias para la instalación de Oracle XE 18c.
- Descargar e instalar Oracle XE 18c.
- Configurar el redireccionamiento IP necesario para poder comunicarse con la VM desde el equipo anfitrión.

El proceso de instalación puede tomar varios minutos dependiendo del ancho de banda de su conexión y/o de la potencia de su equipo; en la consola verán el progreso de la misma.

![Proceso de instalación 1](https://dev-to-uploads.s3.amazonaws.com/i/xk0419hz5m2ktvd7yllv.png)

![Procesao de instalación 2](https://dev-to-uploads.s3.amazonaws.com/i/xk0419hz5m2ktvd7yllv.png)

Al finalizar el proceso tomen nota del usuario y contraseña de los usuarios `sys`, `system` y `pdbadmin` que aparecerán en la consola. (Si no pudieron tomar nota tampoco hay que entrar en pánico, es muy sencillo cambiar estas contraseñas y lo explicaré un poco más abajo)

¡Y eso es todo! Ya tienen una base de datos **Oracle XE 18c** funcional en su equipo. Para configurar un cliente como **SQL Developer** utilicen los siguientes datos:

- Hostname: `localhost`
- Port: `1521`
- SID: `XE`
- PDB: `XEPDB1`
- Usen las contraseñas generadas automáticamente

![Configuración SQL Developer](https://dev-to-uploads.s3.amazonaws.com/i/9kj39ibakrn7w4c5157f.png)

Si prefieren cambiar la contraseña pueden ingresar a la máquina usando el comando `vagrant ssh` estando en el mismo directorio desde el que ejecutaron `vagrant up`.

![Ingresando al VM con vagrant ssh](https://dev-to-uploads.s3.amazonaws.com/i/rpb9rsh8isve906fxacz.png)

Una vez hayan ingresado a la máquina virtual ejecuten estos comandos:

`sudo su - oracle`

`/home/oracle/setPassword.sh <nuevoPassword>`

Donde `<nuevoPassword>` es la nueva contraseña que quieren utilizar. Recuerden que es posible que la base de datos exija que la contraseña cumpla con ciertos parámetros de complejidad.