Document toolboxDocument toolbox

.Deployment Guide 13.0 v12.3.1

Solution Prerequisites

Following are the solution setup prerequisites.

Hardware requirements

For HA deployment, each machine in the cluster should have the following hardware specifications.


Minimum requirement

CPU

2 cores vCPU (4 cores for non-HA deployment)

RAM

4 GB (8 GB for non-HA deployment)

Disk

100 GB mounted on /

NICs

1 NIC

Software Requirements

OS Compatibility

We require the customer/partner to install the following software on the server.

Item

Version

CentOS 7

Administrative privileges (root) are required to follow the deployment steps.

Database Requirements

Item

Notes

MS SQL Server 2014, 2016 Express/ Standard/ Enterprise


Docker Engine Requirements

ItemNotes

Docker CE

Docker CE 18+ and docker-compose (in case of CentOS)

GitGit install

Browser Compatibility

Item

Version

Notes

Firefox

the latest


Chrome

the latest


IENot testedAn on-demand testing cycle can be planned

Cisco Unified CCX Compatibility

UCCX 11.6

On this page


Installation Steps

Internet should be available on the machine where the application is being installed and connections on port 9242 should be allowed in the network firewall to carry out the installation steps. Commands and steps marked with (HA only) tag shouldn't be executed in a standalone single server deployment. All the commands start with a # indicating that root user privileges are required to execute these commands. Trailing # is not a part of the command.

Allow ports in the firewall

For internal communication of docker swarm, you'll need to allow the communication (both inbound and outbound) on the ports: 7575/tcp, 8090/tcp, 8091/tcp and 7077/tcp.

To start the firewall on CentOS (if it isn't started already), execute the following commands. You'll have to execute these commands on all the cluster machines.: 

# systemctl enable firewalld
# systemctl start firewalld

To allow the ports on CentOS firewall, you can execute the following commands. You'll have to execute these commands on all the cluster machines.

# firewall-cmd --add-port=7575/tcp --permanent
# firewall-cmd --add-port=8090/tcp --permanent
# firewall-cmd --add-port=8091/tcp --permanent
# firewall-cmd --add-port=7077/tcp --permanent
# firewall-cmd --reload

Configure Log Rotation

Add the following lines in /etc/docker/daemon.json file (create the file if not there already) and restart the docker daemon using systemctl restart docker. Perform this step on all the machines in the cluster in case of HA deployment.

{   
    "log-driver": "json-file", 
    "log-opts": {
        "max-size": "50m",
        "max-file": "3"
    } 
}

Creating a Swarm Cluster

  1. Initialize a swarm manager with the IP address of the machine on which it is being run:

    # docker swarm init --advertise-addr <ip-addr>


Installing Application

  1. Download the deployment script ecm-deployment.sh and place it in the /root directory. This script will:
    1. delete the ecm-deployment directory in the present working directory if it exists.
    2. clone the ecm-deployment repository from gitlab in the present working directory.
  2. To execute the script, give it the execute permissions and execute it. 

    # chmod +x ecm-deployment.sh
    # ./ecm-deployment.sh
  3. Update environment variables  in the following files inside /root/ecm-deployment/docker/environment_variables folder.

    1. common-variables.env

      NameDescription
      Do not change the default values for non-HA deployment. For HA, use SQL server cluster settings instead of the defaults.
      DB_URL

      ECM database connection url

      For example:

      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name
      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name;instanceName=SomeInstance
      DB_USERdatabase user
      DB_PASSWORDdatabase password
      DB_DRIVERJDBC driver e.g., net.sourceforge.jtds.jdbc.Driver
      DB_DIALECTDatabase dialect e.g., org.hibernate.dialect.SQLServer2008Dialect
    2. umm-variables.env

      NameDescription
      Do not change the default values for non-HA deployment. For HA, use SQL server cluster settings instead of the defaults.
      DB_URL

      UMM  database connection url

      For example:

      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name
      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name;instanceName=SomeInstance
      DB_USERdatabase user
      DB_PASSdatabase password
      DB_DRIVERJDBC driver e.g., net.sourceforge.jtds.jdbc.Driver
      DB_DIALECTDatabase dialect e.g., org.hibernate.dialect.SQLServer2008Dialect
      Change the following variables as per your environment
      PRIM_FINESSE_IP

      Primary Finesse URL including port (if not 80 or 443)

      For example:

      • http://finesse10-5.com
      • https://finesse12-0.com:8445
      SEC_FINESSE_IP

      Secondary Finesse URL including port (if not 80 or 443)

      For example:

      • http://finesse10-5.com
      • https://finesse12-0.com:8445
      FINESSE_USERFinesse administrator user
      FINESSE_PASSFinesse administrator password

      ADMIN_PASS

      Password of the admin user

    3. clm-variables.env

      NameDescription

      DB_URL

      CallerList database connection url

      For example:

      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name
      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name;instanceName=SomeInstance
      DB_PASSDatabase password
      DB_USERDatabase username
      DB_DRIVERJDBC driver e.g., net.sourceforge.jtds.jdbc.Driver
      DB_DIALECTDatabase dialect e.g., org.hibernate.dialect.SQLServer2008Dialect
    4.  prompt-variables.env

      NameDescription
      DB_URL

      CallerList database connection url

      For example:

      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name
      • jdbc:jtds:sqlserver://<MACHINE-IP or FQDN>:PORT/db_name;instanceName=SomeInstance
      DB_PASSDatabase password
      DB_USERDatabase username
      DB_DRIVERJDBC driver e.g., net.sourceforge.jtds.jdbc.Driver
      DB_DIALECTDatabase dialect e.g., org.hibernate.dialect.SQLServer2008Dialect
      PRIM_IP

      Cisco UCCX Publisher URL

      http://192.168.1.100

      SEC_IP

      Cisco UCCX Subscriber URL

      http://192.168.1.100

    5. frontend-variables.env

      NameDescription
      GAT_URL

      Provide the URL of Umm :
      http://<machine_IP>:<PORT>/<microservice>

      (microservice = umm)

  4. Get domain/CA signed SSL certificates for ecm FQDN/CN and place the files in /root/ecm-deployment/docker/certificates folder. The file names should be server.crt and server.key.
  5. Execute the following commands inside /root/ecm-deployment directory. You just need to execute this on any one of the machines even in case of HA cluster: 

    # chmod 755 install.sh
    # ./install.sh
  6. Run the following command to ensure that all the components are up and running. The screenshot below shows a sample response for a standalone non-HA deployment. 

    # docker service ls



Adding License

  1. Browse to https://FQDN/umm in your browser (FQDN will be the domain name assigned to the IP/VIP). 
  2. Click on the red warning icon on right, paste the license in the field and click save.