Jump to: navigation, search
Line 98: Line 98:
 
<li>Wait until docker-compose is up and running. It may take up to 10 minutes.</li>
 
<li>Wait until docker-compose is up and running. It may take up to 10 minutes.</li>
  
Verification
+
====Verifying GWS Services====
  
 
Use the following links to get and verify that expected versions of the GWS services are correct:
 
Use the following links to get and verify that expected versions of the GWS services are correct:
Line 104: Line 104:
 
{|
 
{|
 
! '''Service'''
 
! '''Service'''
!
 
 
! '''Verification URLs'''
 
! '''Verification URLs'''
 
|-
 
|-
 
| Auth API
 
| Auth API
|
 
 
| <nowiki>http://GWS_APPLICATIONS_IP/auth/v3/version</nowiki>
 
| <nowiki>http://GWS_APPLICATIONS_IP/auth/v3/version</nowiki>
 
|-
 
|-
 
| Config API
 
| Config API
|
 
 
| <nowiki>http://GWS_APPLICATIONS_IP/config/v3/version</nowiki>
 
| <nowiki>http://GWS_APPLICATIONS_IP/config/v3/version</nowiki>
 
|-
 
|-
 
| Environment API
 
| Environment API
|
 
 
| <nowiki>http://gws_applications_ip/auth/v3/version</nowiki>
 
| <nowiki>http://gws_applications_ip/auth/v3/version</nowiki>
 
|-
 
|-
 
| Workspace API
 
| Workspace API
|
 
 
| <nowiki>http://GWS_APPLICATIONS_IP/workspace/v3/version</nowiki>
 
| <nowiki>http://GWS_APPLICATIONS_IP/workspace/v3/version</nowiki>
 
|-
 
|-
 
| Workspace UI
 
| Workspace UI
|
 
 
| <nowiki>http://GWS_APPLICATIONS_IP/ui/wwe/index.html</nowiki>
 
| <nowiki>http://GWS_APPLICATIONS_IP/ui/wwe/index.html</nowiki>
 
|}
 
|}
  
 
---
 
 
= Deploying GWS in Test Labs =
 
 
=== Hardware Requirements ===
 
* Single node of 64 GB of RAM for a full WWE service set.
 
* At least 4 CPU cores are required.
 
* HDD 200 GB
 
 
=== Software Requirements ===
 
* Any Enterprise Linux version 7 (CentOS, RHEL, etc.)
 
 
==Install Docker and docker-compose==
 
 
# {{#Widget:ExtLink|link=https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1|displaytext=Install Docker}}
 
# {{#Widget:ExtLink|link=https://docs.docker.com/compose/install/|displaytext=Install Docker-Compose}}
 
 
==Install GWS micro-services==
 
<!--
 
# Create a '''premise''' directory under the '''/opt/genesys/gws''' directory and copy the contents of the package's '''docker''' directory in all target machines.
 
# Run the following command at all target machines: <pre># ./bin/preflight.sh</pre>{{NoteFormat|This script disables firewalls and sets SElinux to ''permissive'' mode.}}
 
# Run the following command at all target machines:<pre># ./bin/dump-restore.sh restore</pre>
 
-->
 
 
 
# Create a '''gws''' directory under the '''/opt/genesys''' directory and copy the contents of the package's '''docker''' directory .
 
# Navigate to the '''/opt/genesys/gws/docker/images''' directory.
 
# Populate the '''images''' directory with the Docker image tarballs in *.tar format: <pre>for i in *.tar; do sudo docker load —input $i; done</pre>
 
# Edit the following values in the '''opt/genesys/gws/docker/common-env''' file:
 
#* LOCATION=USW2 - Genesys-specific value which affect server visibility. (should corresponds with value specified in CloudCluster’s connections > Advanced tab).
 
#* REDIRECT_URIS=<nowiki>http://uri1</nowiki>,<nowiki>http://uri2</nowiki> - specified as an array of double-quoted, comma-separated values with no whitespace between. Should be resolved from outside the docker host.
 
#* DOCKER_REPOSITORY - just leave intact, for manual GWS-images distribution.
 
#* DOCKERHUB_MIRROR= - just leave empty for manual infrastructure images distribution, or fetching them from Dockerhub (assuming you have internet connection in your environment).
 
#* Set the respective GWS components versions.
 
# Create symbolic links for proper docker-compose invocation. <br /> <pre>ln -s /usr/local/bin/docker-compose docker-compose</pre> <br /> <pre>sudo ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc </pre>
 
# Navigate to the '''/opt/genesys/gws/wwe''' directory.
 
# Invoke startup script: <br /><pre>sudo start-gws-sevices.sh</pre>
 
# Wait until docker-compose stabilizes. It can take up to 10 minutes.
 
 
 
<!--
 
==Create GWS-data service Containers==
 
 
# Create a ''systemd'' unit. <pre>SERVICE_NAME="data" ./bin/register-systemd-unit.sh</pre>
 
# Start the data services.<pre>systemctl start gws-data.service</pre>
 
# Configure Redis.<pre>./bin/redis-starter.sh</pre>
 
 
==Create GWS-applications Containers==
 
 
# Create a ''systemd'' unit. <pre>SERVICE_NAME="applications" ./bin/register-systemd-unit.sh</pre>
 
# Start the applications services. <pre>systemctl start gws-applications.service</pre>
 
# Create the client. <pre>./bin/client-curl-script.sh</pre>
 
# Check the status of applications. <pre>./bin/healthcheck.sh</pre>
 
-->
 
==Configure GWS ==
 
===Configure Config Server===
 
Refer to [[Documentation:HTCC:Dep:InstallationProcedures|InstallationProcedures]] for information on configuring GWS.
 
 
==Create a Genesys Environment==
 
===Mapping ===
 
<pre>POST http://<GWS_APPLICATIONS_IP>:80/environment/v3/environments </pre>
 
 
=== Object Description ===
 
{|
 
|-
 
! Name
 
! Type
 
! Description
 
! Required
 
! Default
 
|-
 
| tenant
 
| String
 
| Tenant name
 
| Y
 
| --
 
|-
 
| appName
 
| String
 
| Application name to connect to
 
| Y
 
| --
 
|-
 
| username
 
| String
 
| Username to connect to ConfigurationServer
 
| Y
 
| --
 
|-
 
| password
 
| String
 
| Password to connect to ConfigurationServer
 
| Y
 
| --
 
|-
 
| connectionProtocol
 
| String
 
| Connection protocol
 
| N
 
| addp
 
|-
 
| localTimeout
 
| Integer
 
| Local timeout
 
| N
 
| 5
 
|-
 
| remoteTimeout
 
| Integer
 
| Remote timeout
 
| N
 
| 7
 
|-
 
| traceMode
 
| String
 
| Trace mode
 
| N
 
| CFGTMBoth
 
|-
 
| tlsEnabled
 
| Boolean
 
| Use tls to connect to Configuration Server
 
| N
 
| false
 
|-
 
| configServers
 
| Array
 
| List of Configuration Servers in this environment (see bellow)
 
| N
 
| empty array
 
|}
 
 
=== Configuration Server Object ===
 
 
{|
 
|-
 
! Name
 
! Type
 
! Description
 
! Required
 
! Default
 
|-
 
| primaryAddress
 
| String
 
| Address of primary Configuration Server
 
| Y
 
| --
 
|-
 
| primaryPort
 
| Integer
 
| Port of primary Configuration Server
 
| Y
 
| --
 
|-
 
| backupAddress
 
| String
 
| Address of backup Configuration Server
 
| N
 
| --
 
|-
 
| backupPort
 
| Integer
 
| Port of backup Configuration Server
 
| N
 
| --
 
|-
 
| readOnly
 
| Boolean
 
| Indicates if Configuration Server works in read only mode
 
| Y
 
| --
 
|-
 
| locations
 
| String
 
| Location of Configuration Server
 
| Y
 
| --
 
|}
 
 
==== Example ====
 
<pre>
 
POST .../environment/v3/environments
 
{
 
"data": {
 
  "username": "default",
 
  "remoteTimeout": 7,
 
  "appName": "WS_Node",
 
  "traceMode": "CFGTMBoth",
 
  "tlsEnabled": false,
 
  "localTimeout": 5,
 
  "connectionProtocol": "addp",
 
  "password": "passowrd",
 
  "configServers": [
 
    {
 
      "primaryPort": 8888,
 
      "readOnly": false,
 
      "primaryAddress": "voice-p.dev",
 
      "locations": "usw1"
 
    },
 
    {
 
      "primaryPort": 8888,
 
      "primaryAddress": "10.20.10.1",
 
      "readOnly": false,
 
      "locations": "use2",
 
      "backupPort": 8888,
 
      "backupAddress": "10.20.20.1"
 
    }
 
  ],
 
  "tenant": "Environment"
 
}
 
}
 
</pre>
 
 
Response:
 
 
<pre>
 
{
 
"statusCode": 0,
 
"path": "/environments/2"
 
}
 
</pre>
 
 
==Create contact-center==
 
=== Mapping===
 
<pre>POST http://<GWS_APPLICATIONS_IP>:80/environment/v3/contact-centers</pre>
 
 
=== Object description===
 
{|
 
! Name
 
! Type
 
! Description
 
! Required
 
! Default
 
|-
 
| environmentId
 
| String
 
| Environment id
 
| Y
 
| --
 
|-
 
| name
 
| String
 
| Contact center name
 
| Y
 
| --
 
|-
 
| domains
 
| Array
 
| List of domains associated with this contact center
 
| N
 
| Empty list
 
|-
 
| auth
 
| String
 
| Authentication type for this contact center
 
| Y
 
| --
 
|-
 
|}
 
 
==== Example ====
 
<pre>
 
POST .../environment/v3/contactCenters
 
  {
 
    "data": {
 
      "environmentId": "5",
 
      “name”: “customer.com”
 
      "domains": ["customer.com"],
 
      "auth": "configServer"
 
    }
 
}
 
</pre>
 
 
Response:
 
 
<pre>
 
{
 
  "statusCode": 0,
 
  "path": "/conatctCenters/6"
 
}
 
</pre>
 
 
==Links==
 
# Auth API: <nowiki>http://<GWS_APPLICATIONS_IP>:80/auth/v3/*</nowiki>
 
# Config API:  <nowiki>http://<GWS_APPLICATIONS_IP>:80/configuration/v3/*</nowiki>
 
# Environment API:  <nowiki>http://<GWS_APPLICATIONS_IP>:80/environment/v3/*</nowiki>
 
# Provisioning API:  <nowiki>http://<GWS_APPLICATIONS_IP>:80/provisioning/v3/*</nowiki>
 
# Workspace API:  <nowiki>http://<GWS_APPLICATIONS_IP>:80/workspace/v3/*</nowiki>
 
# Workspace UI: <nowiki>http://<GWS_APPLICATIONS_IP>:80/ui/wwe/index.html</nowiki>
 
  
 
[[Category:V:HTCC:9.0.0DRAFT]]
 
[[Category:V:HTCC:9.0.0DRAFT]]

Revision as of 06:53, August 9, 2019

GWS Deployment with Docker

The page provides instructions on preparing and deploying GWS with Docker. 

Prerequisites

System Requirements

RAM Requirements

  • Minimum 16 GB of RAM
Deploying GWS
  1. Unpack the IP_HTCCDev_xxx_ENU_dockerlinux.zip file and navigate to the ip folder which should contain following files:
    • gws-microservices.tgz
    • exported microservices in tar.gz format (e.g. gws-platform-configuration_9.0.000.42.tar.gz)
  2. Unpack the gws-microservices.tgz archive to /opt/genesys/gws directory.
    • mkdir -p /opt/genesys/gws 
    • tar xvf gws-microservices.tgz -C /opt/genesys/gws
  3. Populate the Docker images (presented in *.tar.gz format) from installation package: 
    • for i in *.tar.gz; do sudo docker load --input $i; done
  4. Edit the following values in the /opt/genesys/gws/docker/common-env file:
Environment Variable Value Description
DOCKER_REPOSITORY Should be empty if the GWS images are loaded manually.
REDIRECT_URIS \"http://uri1\",\"http://uri2\"

A comma-separated array of resolvable hostnames or IP addresses of the Docker host machine.

Important
The array should use double quotes and the quotes should be escaped using backslashes. Teh array should not have any whitespace between items.
DOCKERHUB_MIRROR Should be empty if the images of the Infrastructure components are loaded manually.
LOCATION /USW2 The location of Configuration Server.
ENVIRONMENT_USERNAME default The username to connect to the Configuration Server.
ENVIRONMENT_APPNAME Cloud The application name to connect to the Configuration Server.
ENVIRONMENT_PASSWORD password The password to connect to the Configuration Server.
ENVIRONMENT_CONFIG_SERVER_PORT 8888 The port number of the primary Configuration Server.
ENVIRONMENT_CONFIG_SERVER_PRIMARY_ADDRESS 127.0.0.1 The IP address of the primary Configuration Server.
ENVIRONMENT_CONFIG_SERVER_TENANT Environment The Configuration Server's tenant name.
CONTACT_CENTER_DOMAIN_NAME on_premise_lab The domain associated with this contact center.
  1. For proper docker-compose invocation creation of following symbolic links may needed:
    ln -s /usr/local/bin/docker-compose docker-compose
    sudo ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc
  2. For Elasticsearch default operating system limits on mmap counts is likely to be too low, which may result in out of memory exceptions. To mitigate:
    sysctl -w vm.max_map_count=262144
  3. Navigate to the /opt/genesys/gws/docker/wwe directory.
  4. Source common-env file with environment variables:
    . ../common-env
  5. Invoke docker-compose: 
    docker-compose up -d
  6. Wait until docker-compose is up and running. It may take up to 10 minutes.
  7. Verifying GWS Services

    Use the following links to get and verify that expected versions of the GWS services are correct:

    Service Verification URLs
    Auth API http://GWS_APPLICATIONS_IP/auth/v3/version
    Config API http://GWS_APPLICATIONS_IP/config/v3/version
    Environment API http://gws_applications_ip/auth/v3/version
    Workspace API http://GWS_APPLICATIONS_IP/workspace/v3/version
    Workspace UI http://GWS_APPLICATIONS_IP/ui/wwe/index.html
Comments or questions about this documentation? Contact us for support!