Instalación de OMniLeads¶
La instalación está basada en Ansible junto a un par bash scripts que preparan el entorno (usuarios, passwords, escenario de NAT, etc.) e invocan la ejecución del Playbook de Ansible
Todo el código se encuentra versionado dentro del repositorio de OMniLeads.

Existen dos formas en las que se puede ejecutar la instalación (Self-hosted y Deployer-Nodes).
Método de instalación Self-Hosted¶
Bajo esta modalidad el proceso de instalación y gestión de actualizaciones se maneja utilizando el bash script deploy.sh directamente sobre el host que va a alojar OMniLeads. Por lo tanto sobre dicho host se debe descargar el repo de la App, allí se trabaja con el archivo de inventario para luego lanzar el instalador.
Por cada instancia de OMniLeads que se administre, se deberá ingresar por SSH, descargar el repositorio y correr la instalación. Luego las actualizaciones también implicarán que el administrador se conecte a cada instancia y ejecute los pasos necesarios en cada servidor gestionado.
Nota
Este método resulta ideal en el marco de la Infraestructura como código, ya que nos permite crear la instancia y provisionar la misma con la instalación de OML.

Método de instalación Deployer & Nodes¶
En esta modalidad se plantea utilizar un deployer (es decir una estación de trabajo con Ansible instalado) y luego desde este único deployer instalar y gestionar actualizaciones de un número ilimitado de instancias de operativas de OMniLeads, facilitando y centralizando la gestión, ya que solo implica un acceso SSH a cada nodo.
Cada nodo-host a gestionar debe admitir acceso SSH de root / sudo desde nuestro deployer.

Más allá del método de instalación seleccionado (Self-Hosted ó Deployer & Nodes), OMniLeads puede ser desplegado en varios escenarios.
Despliegue de OMniLeads sobre arquitectura tradicional (AIO)¶
OMniLeads puede correr como una aplicación tradicional desplegando una instalación de todos los componentes sobre un único HOST. Siempre y cuando se utilice como base GNU/Linux CentOS-7 o Amazon Linux. A este tipo de instalación lo llamamos OMniLeads AIO (All In One).

Despliegue de OMniLeads en cluster de componentes¶
En este escenario podemos separar los componentes de la aplicación de manera tal que puedan ser ejecutados como servicios aislados corriendo sobre host dedicados. Podemos entonces ir sacando componenetes hacia host aislados en la medida que necesitemos escalar.
Por otro lado en la era de las Nubes Públicas (recinto donde podemos ejecutar nuestras aplicaciones) se hace muy tentador aprovechar la relación precios VS instancias y desplegar por defecto OMniLeads en un cluster horizontal de componentes.

Podemos configurar el cluster de acuerdo a nuestra preferencias y necesidades.
Nota
Como es sabido en ambientes Cloud el costo asociado a mantener N instancias con M recursos es generalemente similar a mantener una sola gran instancia instancia con NxM recursos.

Lo interesante de aislar los componenetes pasa por el hecho de otorgar a cada componente un host con su stack de networking, gestor de paquetes y dependencias, memoria, cpu, kernel. A la hora de identificar alguna anomalía y/o redimensionar para escalar todo se torna mucho más sencillo.
Despliegue de OMniLeads sobre contenedores Docker¶
OMniLeads puede ser desplegado utilizando contenedores Docker, esto extiende la posibilidad de ejecución de la aplicación sobre diversas distrubuciones de GNU/Linux.

Se distribuye con el proyecto el código para realizar un despliegue de OMniLeads sobre Docker Docker ProdEnv el cual se basa en un docker-compose.yml y una seria de archivos/scripts que permiten correr los componenetes (asterisk, kamailio, nginx, websocket y django App) como contenedores sobre una instancia de Linux, mientras que los componentes (RTPengine, PostgreSQL y Wombat Dialer) deben ser implementados sobre hosts Linux aislados.
Nota
El proyecto distribuye todos losd Dockerfile para generar las imágenes de los componenetes mencionados, además por supuesto las mismas se encuentran disponibles en docker hub , de manera tal que el usuario pueda disponer y orquestar las mismas de acuerdo a sus preferencias.
Archivo de inventario¶
El archivo de inventario es el componente fundamental en la instalación y administración (actualizaciones, cambios de passwords de componentes, clusterización, etc.) de la App. Es fundamental entender el mismo en su totalidad antes de avanzar con el despliegue de OMniLeads en cualquiera de sus posibilidades.
Instalación de OMniLeads¶
Ahora si, luego de haber leído y comprendido bien el marco conceptual introductorio, se procede con la exposición de los pasos necesarios para ejecutar la instalación de la App.