Deploy del componente PostgreSQL

Como es sabido, PostgreSQL implementa un script de fisrt_boot_installer.tpl, que puede ser invocado utilizando tecnología de provisioning o bien ser ejecutado manualmente con una previa parametrización de las variables implicadas.

Para obtener nuestro script, lanzar el siguiente comando:

curl https://gitlab.com/omnileads/omlpgsql/-/raw/master/deploy/first_boot_installer.tpl?inline=false > first_boot_installer.sh && chmod +x first_boot_installer.sh

Entonces, una vez que contamos con el script, pasamos a trabajar las variables, quitando comentarios y configurando sus valores dentro del propio script. Vamos a listar y explicar cada una de éstas variables que deben ser ajustadas antes de ejecutar el script.

Variables de instalación

  • oml_infras_stage: Se refiere al proveedor de infraestructura implicado. La idea es aprovechar las APIs de los proveedores cloud para determinar cuestiones como parámetros de la red. Si vamos a instalar onpremise o en alguna nube que no está dentro del listado, asignar onpremise como valor para la variable. Posibles valores: onpremise, aws, digitalocean, vultr, linode.
  • oml_nic: Aquí debemos indicar la interfaz de red sobre la que se levanta el puerto TCP 5432 que va a procesar las solicitudes de conexión provenientes de Asterisk y OMLApp.
  • oml_pgsql_release: Release del componente a desplegar.
  • oml_db_name, oml_db_user, y oml_db_password: Aquí citamos 3 parámetros vinculados entre sí, que son el nombre de la base de datos que va a alojar todas las tablas necesarias, el usuario y el password admitido para acceder a dicha base de datos.
  • oml_pgsql_blockdev: Aquí se indica el nombre del disco o partición exclusiva que se desea montar sobre el filesystem, para utilizar como directorio donde se ubica las bases de datos PostgreSQL, es decir a donde se va a montar el path /var/lib/pgsql. El hecho de utilizar un dispositivo/partición aquí, tiene sentido si es que PostgreSQL va a convivir con OMLApp en el mismo Linux host. Posibles valores: NULL, /dev/….
  • PRIVATE_IPV4 e IPADDR_MASK: Estos parámetros por defecto deben quedar comentados. Sólamente se deben habilitar si por algún motivo, el script no logró determinar la dirección IPv4 y máscara de subred a través de inspeccionar oml_nic. La idea es que PGSQL abra sus conexiones sobre una IPv4 y subred.

Ejecución de la instalación

Finalmente, podemos lanzar nuestro script first-boot-instaler.sh. Ésto lo podemos hacer como user_data de una instancia cloud, a través de alguna utilidad de línea de comandos para administrar la infraestructura, o bien directamente copiando el archivo hacia el Linux host destino y lanzando la ejecución del mismo.

Para comprobar que el componente se encuentra operativo, debemos lanzar el siguiente comando y observar la siguiente salida:

systemctl status postgresql-11
_images/install_pgsql_status.png

Importante

¡Es importante asegurarnos de que PosgteSQL abra su puerto (5432 por defecto) sobre una dirección de red privada! Es decir, NUNCA debemos instalar éste componente sobre una subred pública.