OMniLeads Installation using Docker

Since version 1.4.0, OMniLeads can be deployed in production using Docker.In this section we cover all required aspects to run the application using this novel “virtualization” techonology over CentOS-7, Issabel or FreePBX as underlying operating system.

Note

First of all, we want to emphasize, that all things exposed here have warranty on Issabel-20200102. For FreePBX-15 exists a workaround detailed at the end of this section.

When executing the installation process available on repository, we proceds with the installation of:

  • Docker
  • docker-compose
  • PostgreSQL
  • MySQL
  • RTPEngine

These components will be installed and executed directly over the base operating system. For other part, the remaining application components, will be executed as Docker containers. In the following figure a representative scheme about how is deployed OMniLeads alongside an IPPBX stack is shown”

_images/install_docker_centos.png

As we can see the components: Asterisk, Kamailio, Nginx, Wombat Dialer, Redis and OMni-App are executed on containers, while RTPengine, PostgreSQL and MySQL over the base operating system. Now let’s talk about docker network. These containers are deployed in a LAN network created by docker, creating virtual interfaces for each container. This type of network configuration is called Bridge network. The default LAN for this is 192.168.15.0/24.

Installation procedure

As first step we proced with the login to the Linux host for then download the OMniLeadsand once cloned the repository we must go to the relative path; ominicontacto/deploy/ansible.

yum -y install git kernel-devel kernel-headers
yum update -y
reboot

Once finished the reboot, proceed to use Ansible to the installation you can do it Self-Hosted installation method o Deployer-Nodes installation methodology. Take care about two things.

  1. Verify the section OMniLeads on Docker Containers to see the docker variables to modify.
  2. Verify the section Docker variables to see the docker variables to modify.
  3. Modify the inventory file variables Passwords and parameters.

Note

  • The SUBNET=192.168.15.0/24 should ONLY be modified in case your Linuxhost LAN IP (where docker-engine runs) does not match with this range mentioned.
  1. Execute the deploy.sh script, this way:

For ansible host-node:

./deploy.sh --docker-deploy

For ansible self-hosted:

./deploy.sh --docker-deploy --iface=<your_iface>

Where <your_iface> is the interface with the IP address you want to use to raise up the services that compose OMniLeads (it usually is the LAN interface of the host).

Systemd - omnileads-prodenv

The installation includes the service: omnileads-prodenv.service, which will manage the up/down of environment. The service is configured to start automatically after a reboot.

To verifiy the service:

systemctl status omnileads-prodenv

If everything is correct we should get the following output:

_images/install_docker_systemctl_status.png

To stop the service:

systemctl stop omnileads-prodenv

To start the service

systemctl start omnileads-prodenv

FreePBX workaround

After every operating system reboot we must execute the following commands in order to make the instance ready to start to work

systemctl restart docker
systemctl restart omnileads-prodenv

These two commands will make ready the OMniLeads instance in FreePBX

Note

On next versions we will try to optimize the OMniLeads execution in FreePBX