Deploy en HA (High Availability)
Última actualización
Última actualización
Mediante este método de instalación, es posible desplegar la Suite de OMniLeads en una disposición de Cluster de Alta Disponibilidad, agrupando contenedores según el siguiente esquema:
Para ello, se requieren de cuatro instancias de Linux (con cualquier sistema operativo moderno) con acceso a Internet. Dado que Ansible utiliza un proceso de conexión SSH (secure shell) para acceder a la instancia y ejecutar su playbook, es requisito obligatorio contar con la llave pública SSH y el archivo known_hosts configurado oportunamente en cada host.
Debajo se especifica un archivo de inventario genérico para un típico despliegue en el esquema de Cluster HA. En su primera sección se listan los diferentes hosts por tenant y por tipo de deployment a ejecutar (ha_instances):
En su segunda sección, el archivo de inventario permite parametrizar variables de entorno necesarias para la acción. Nota: Por default, todas ellas afectan de manera directa a TODAS las instancias declaradas, a menos que una variable (o grupo de variables) sea especificada en la sección del host (o grupo de hosts) en cuestión.
Finalmente, la última sección comprende a la agrupación de hosts en función de la arquitectura seleccionada. En nuestro caso, bajo las etiquetas omnileads_aio y ha_omnileads_sql, se listarian los hosts correspondientes a la/s instancia/s que se pretende/n deployar ("_aio" hará referencia a los nodos A y B de HA para Aplicación, mientras que "_sql" hará referencia a los nodos read-only y read-write de PostgreSQL).
Debajo se muestra un ejemplo:
Como primer paso, procedemos a crear la carpeta instances en el directorio raíz. Seguido a ello, en su interior crearemos una subcarpeta donde alojaremos el archivo de inventario de ejemplo provisto por el repositorio:
Nota: Si bien estamos dentro de un repositorio versionado, el nombre "instances" está reservado y es ignorado por el repositorio a partir del archivo .gitignore.
De acuerdo a lo comprendido en las secciones del archivo de inventario, declararemos nuestra futura instancia de OMniLeads en HA en la sección de ha_instances. En nuestro caso, usaremos el nombre de ejemplo "eucalipto" para definir el tenant:
Es importante especificar el escenario en el que se trabajará. Si usaremos un VPS, el entorno a configurar será "cloud", y será "lan" si se usa una Virtual Machine. Definiremos para ello la variable de entorno infra_env según sea el caso: "cloud" (por default) o "lan".
Las variables tenant_id (nombre del tenant) y ansible_host (dirección IP que deberá alcanzar Ansible para ejecutar la Playbook) son mandatorias para especificar al tenant. A su vez, se listan un conjunto de variables necesarias para el correcto funcionamieto del cluster HA:
ha_vip_nic: este parámetro hace referencia a la IP virtual a asignar al cluster. En un entorno de alta disponiblidad debemos indicar a cada nodo del cluster su condición inicial (ha_rol), de esta manera se especifica el nombre de la NIC sobre la cual la VIP se establecerá.
omnileads_ha: este parámetro instruye a Ansible a correr ciertas tasks de playbook relacionadas a configuración de HA
netaddr y netprefix: parámetros utilizados para describir la red y máscara del entorno.
postgres_1: dirección IP del nodo 1 de PostgreSQL
postgres_2: dirección IP del nodo 2 de PostgreSQL
aio_1: dirección IP del nodo 1 de App
aio_2: dirección IP del nodo 2 de App
omnileads_vip: dirección IP virtual para el acceso HTTPS del cluster HA
postgres_rw_vip: dirección IP del nodo RW (read-write) de PostgreSQL
postgres_ro_vip: dirección IP del nodo RO (read-only) de PostgreSQL
bucket_url: la url del bucket externo (object storage)
El resto de los paráemtros se pueden customizar a gusto.
Finalmente, debemos asegurarnos de que la última sección contenga a los hosts del cluster correspondiente al tenant HA (tanto en _aio como en _sql). Debajo un ejemplo sobre nuestro tenant "eucalipto":
Con el archivo de inventario configurado, procedemos a ejecutar la acción de instalación del nuevo tenant:
En el apartado de First Login, se pueden revisar los pasos necesarios para obtener el primer acceso a la UI con usuario Administrador.
Para mayor información, sugerimos visitar la documentación expuesta en el repositorio oficial del proyecto.