🇬🇧
Omnileads Docs
ComunidadForo
English
English
  • 👶Introduction to OMniLeads
    • OMniLeads General Specs
    • Architecture and components
  • 🚀OMniLeads installation methods
    • Deploy using Docker
      • Deploy with Docker-Destkop
      • Deploy with Docker for VPS Cloud or VM
      • Deploy with Docker for VPS Cloud or VM with External Bucket
    • Deploy with Ansible
      • AIO (All-In-One) Deploy
      • AIT (All-In-Three) Deploy
      • HA (High Availability) Deploy
      • Backups, Restores, Upgrades and Rollbacks
      • Migration from CentOS7
    • OMniLeads Enterprise
    • Development Enviroment Deploy
    • First Login
    • TLS/SSL Certificates
    • Monitoring and observability
    • Security considerations
  • ⚙️Initial Configuration
    • External Authentication
    • Text To Speech (TTS)
  • 🎯CX Survey (Pro)
    • Reports
  • 📈Premium Reports (Pro)
    • Activity Reports
    • Analyzing Results
  • 🎞️Video Calls (Pro)
    • Wordpress Plugin
    • Initial Configuration
    • Webphone Demo
    • Embedding the Webphone
  • ☎️Voice Channel Configuration
    • General SIP trunk parameters
  • 🆗Whatsapp Channel Settings (Pro)
    • OMniLeads & GupShup
    • Register WhatsApp Business in GupShup
    • Message Templates and Time Groups
    • Providers
    • Lines
  • 🚧Wallboard for Business (Pro)
    • Creating a Wallboard
    • Adding Widgets and Realtime Pages
    • Exploring Widgets and Metrics
  • 📤Whatsapp Bulk Messaging (Pro)
  • 💬Contact Campaigns
    • Inbound Campaign
      • Incoming Call Routing
      • Forwarding incoming calls from the PBX
      • Time range conditioned routing
      • IVR - Interactive Voice Response
      • Incoming Caller ID
      • Ejecución de dialplan personalizado
    • Manual Campaign
    • Preview Campaign
    • Dialer Campaing
    • Whatsapp Campaign (Beta)
  • 🎧Agent handbook
    • Login Logout
    • Manual calls from contact list
    • Preview Calls
    • Dialer inbound calls
    • Inbound calls
    • Calls between agents
    • Contact List
    • Whatsapp Messages
  • 🛑Reports, recordings and monitoring
    • Recordings
    • Incoming Campaign Reports
    • Outbound Campaign Reports
    • General call report
    • Agent reports
    • Whatsapp reports (Beta)
    • Conversation Reports
    • Supervision
  • 📊Backoffice - Management audit
  • ☎️Integration between OMniLeads and PBXs
  • 🛠️IT administrator's tasks
  • 🧩CRM Integration
    • Interaction from OMniLeads to CRM
    • Interaction from CRM to OMniLeads
  • 🔐Security considerations
  • 📌OMniLeads RESTful API
    • Agent Session API in Asterisk
  • 🗒️Release Notes
  • ❤️Community
  • 🎇About us
Con tecnología de GitBook
En esta página
  • OMniLeads in a Horizontal Cluster
  • Understanding the Inventory File
  • Now, let's get to work!
  1. OMniLeads installation methods
  2. Deploy with Ansible

AIT (All-In-Three) Deploy

AnteriorAIO (All-In-One) DeploySiguienteHA (High Availability) Deploy

Última actualización hace 12 meses

OMniLeads in a Horizontal Cluster

Using this installation method, it is possible to deploy the OMniLeads Suite in a Horizontal Cluster layout, grouping containers according to the following scheme:

To do this, three Linux instances (with any modern operating system) with Internet access are required. Since Ansible uses an SSH (secure shell) connection process to access the instance and run its playbook, it is a mandatory requirement to have the SSH public key and the known_hosts file configured appropriately on each host.

Understanding the Inventory File

Below is a generic inventory file for a typical deployment in the AIT schema. In its first section, the different hosts are listed by tenant and by type of deployment to be executed (cluster_instances):

In its second section, the inventory file allows parameterizing environment variables necessary for the action. Note: By default, all of them directly affect ALL declared instances, unless a variable (or group of variables) is specified in the host (or group of hosts) section in question.

Finally, the last section covers the grouping of hosts based on the selected architecture. In our case, under the labels omnileads_data, omnileads_voice and omnileads_app the hosts corresponding to the instance(s) that are intended to be deployed would be listed.

Below is an example:

#############################################################################################################
# -- In this section the hosts are grouped based on the type of deployment (AIO, Cluster & Cluster HA).     #
#############################################################################################################

omnileads_aio: 
  hosts:
    #tenant_example_1:
    #tenant_example_2:
    #tenant_example_3:
    #tenant_example_4:
    #tenant_example_7_aio_A:
    #tenant_example_7_aio_B:

################################################    
omnileads_data:   ####### <<<<<<<<<<<< USTED ESTA AQUI! <<<<<<<<<<<<<<<
  hosts:
    #tenant_example_5_data:  
    
omnileads_voice:
  hosts:
    #tenant_example_5_voice:

omnileads_app:
  hosts:
    #tenant_example_5_app:

################################################
ha_omnileads_sql:
  hosts:
    #tenant_example_7_sql_A:
    #tenant_example_7_sql_B:

Now, let's get to work!

As a first step, we proceed to create the instances folder in the root directory. Following this, inside it we will create a subfolder where we will host the example inventory file provided by the repository:

Note: Although we are within a versioned repository, the name "instances" is reserved and is ignored by the repository from the .gitignore file.

mkdir instances
mkdir instances/omlcluster
cp inventory.yml instances/omlcluster

According to what is understood in the sections of the inventory file, we will declare our future OMniLeads instance in AIT in the cluster section. In our case, we will use the example name "tala" to define the tenant:

cluster_instances:
  children:
    tala:
      hosts:
        tala_data:
          ansible_host: 172.16.101.41
          omni_ip_lan: 172.16.101.41
          ansible_ssh_port: 22
        tala_voice:
          ansible_host: 172.16.101.42
          omni_ip_lan: 172.16.101.42
          ansible_ssh_port: 22
        tala_app:
          ansible_host: 172.16.101.43
          omni_ip_lan: 172.16.101.43
          ansible_ssh_port: 22
      vars:
        tenant_id: tala
        data_host: 172.16.101.41
        voice_host: 172.16.101.42
        application_host: 172.16.101.43
        infra_env: lan

It is important to specify the scenario in which you will work. If we will use a VPS, the environment to configure will be "cloud", and it will be "lan" if a Virtual Machine is used. To do this, we will define the infra_env environment variable as appropriate: "cloud" (by default) or "lan".

The variables tenant_id (name of the tenant), ansible_host (IP address that Ansible must reach to run the Playbook) and omni_ip_lan (private IP address of the lan interface) are mandatory to specify the tenant. In turn, the bucket_url and postgres_host variables must be commented out, so that both PostgreSQL and MinIO Object Storage are installed within the _data instance.

Finally, we must ensure that the last section contains the tenant within its corresponding groups (_data, _voice and _app). Below is an example about our tenant "tala":

#############################################################################################################
# -- In this section the hosts are grouped based on the type of deployment (AIO, Cluster & Cluster HA).     #
#############################################################################################################

omnileads_aio:
  hosts:
    #tenant_example_1:
    #tenant_example_2:
    #tenant_example_3:
    #tenant_example_4:

omnileads_data:
  hosts:
    tala_data:    
    
omnileads_voice:
  hosts:
    tala_voice:

omnileads_app:
  hosts:
    tala_app:

With the inventory file configured, we proceed to execute the new tenant installation action:

./deploy.sh --action=install --tenant=omlcluster

In the First Login section, you can review the necessary steps to obtain the first access to the UI with the Administrator user.

For more information, we suggest visiting the documentation displayed in the official project repository.

🚀