Jump to: navigation, search
(Configure Config Server)
(Update with the copy of version: 9.0.0DRAFT)
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Deploying GWS in Test Labs =
+
= Deploying Web Services and Applications in Docker Compose =
  
==Install Docker and docker-compose==
+
This page provides instructions on preparing and deploying Web Services and Applications with Docker.
 +
{{NoteFormat|
 +
* To support Gplus Adapter for Salesforce, Docker Compose must be deployed with HTTPS.
 +
* To upgrade Web Services and Applications, you must install the new version of Web Services Docker Compose.}}
  
# {{#Widget:ExtLink|link=https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1|displaytext=Install Docker}}
+
== Prerequisites ==
# {{#Widget:ExtLink|link=https://docs.docker.com/compose/install/|displaytext=Install Docker-Compose}}
+
For hardware, software, Workspace Web Edition, and Gplus Adapter for Salesforce requirements, refer to [[Prerequisites|Prerequisites]].
 +
Also, ensure your environment has access to [http://docker.io/library docker.io/library].
 +
If internet access is not available, manually load the following public container images to the Docker registry:
 +
* {{#Widget:ExtLink|link=https://hub.docker.com/_/elasticsearch|displaytext=Elasticsearch 7.8}}
 +
* {{#Widget:ExtLink|link=https://hub.docker.com/_/postgres|displaytext=Postgres 11}}
 +
* {{#Widget:ExtLink|link=https://hub.docker.com/_/redis|displaytext=Redis 5}}
 +
* {{#Widget:ExtLink|link=https://hub.docker.com/_/centos|displaytext=CentOS latest}}
  
==Install GWS micro-services==
+
==Configuring Web Services and Applications==
 +
To configure Web Services and Applications, refer to [[Documentation:HTCC:Dep:ConfigurationPremise|Configuring Web Services and Applications]].
  
# Create a '''premise''' directory under the '''/opt/genesys/gws''' directory and copy the contents of the package's '''docker''' directory in all target machines.
+
==Deploying Web Services and Applications==
# 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 GWS-data service Containers==
+
# Unpack the installation package file (e.g. '''IP_HTCCDev_9000207b1_ENU_dockerlinux.zip''') , and navigate to the '''ip''' folder which should contain the following files:
 +
#* '''gws-microservices.tgz'''
 +
#* exported microservices in tar.gz format (e.g. '''gws-platform-configuration_9.0.000.50.tar.gz''')
 +
# Unpack the '''gws-microservices.tgz''' archive to the '''/opt/genesys/gws''' directory. <br />
 +
#*<pre>mkdir -p /opt/genesys/gws </pre>
 +
#*<pre>tar xvf gws-microservices.tgz -C /opt/genesys/gws</pre>
 +
# Populate the Docker images (presented in *.tar.gz format) from the installation package: <br />
 +
#*<pre>for i in *.tar.gz; do sudo docker load --input $i; done</pre>
 +
#:{{NoteFormat|This command must be run with Docker-capable privileges.}}
 +
# Edit the following values in the '''/opt/genesys/gws/kubernetes/parameters.yaml''' file:
  
# 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>
+
! '''Environment Variable'''
# Configure Redis.<pre>./bin/redis-starter.sh</pre>
+
! '''Value'''
 +
! '''Description'''
 +
|-
 +
| DOCKER_REPOSITORY
 +
|
 +
| Should be empty if the Web Services and Applications images are loaded manually.
 +
|-
 +
| REDIRECT_URIS
 +
| <nowiki>\&quot;http://uri1\&quot;,\&quot;http://uri2\&quot;</nowiki>
 +
|
 +
A comma-separated array of resolvable host names or IP addresses of the Docker host machine. Used as a part of the OAuth authentication flow.
 +
{{NoteFormat| To access the lab deployment, it is mandatory to set resolvable host names or IP addresses for the Docker host machine.  
  
==Create GWS-applications Containers==
+
The array should use double quotes and the quotes should be escaped using backslashes. The array should not have any white space between items.
 
+
}}
# 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>
+
| DOCKERHUB_MIRROR
# Create the client. <pre>./bin/client-curl-script.sh</pre>
+
|
# Check the status of applications. <pre>./bin/healthcheck.sh</pre>
+
| Should be empty if the images of the Infrastructure components are loaded manually.
 
 
==Configure GWS ==
 
===Configure Config Server===
 
Refer to [[InstallingAndDeploying|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
+
| LOCATION
! Type
+
| <tt>/USW2</tt>
! Description
+
| The location of Configuration Server.
! Required
+
{{NoteFormat|The Web Services and Applications cluster application object (typically names ''CloudCluster'') in the Configuration Database must be configured with a specified location for each connection to Genesys servers like Configuration Server, Stat Server, T-Server, and so on. This setting defines which server instance is visible by the Web Services and Applications node based on its position in the Web Services and Applications Cluster. }}
! Default
 
 
|-
 
|-
| tenant
+
| GWS_HTTPS_ENABLE
| String
+
| false
| Tenant name
+
| The option to enable https support for deployment.
| Y
 
| --
 
 
|-
 
|-
| appName
+
| GWS_HTTPS_SERVER_CERTIFICATE
| String
+
| server.crt
| Application name to connect to
+
| The path to server certificate, which will be used during the SSL handshake with clients.
| Y
 
| --
 
 
|-
 
|-
| username
+
| GWS_HTTPS_SERVER_CERT_KEY
| String
+
| server.key
| Username to connect to ConfigurationServer
+
| The path to server key, which will be used during the SSL handshake with clients.
| Y
 
| --
 
 
|-
 
|-
| password
+
| ENVIRONMENT_USERNAME
| String
+
| default
| Password to connect to ConfigurationServer
+
| The username to connect to Configuration Server.
| Y
 
| --
 
 
|-
 
|-
| connectionProtocol
+
| ENVIRONMENT_APPNAME
| String
+
| GWS_App
| Connection protocol
+
| The application name to connect to Configuration Server. For details, refer to [[ConfigurationPremise#gaxgwsclient| Creating GWS Client Application]].
| N
 
| addp
 
 
|-
 
|-
| localTimeout
+
| ENVIRONMENT_PASSWORD
| Integer
+
| password
| Local timeout
+
| The password to connect to Configuration Server.
| N
 
| 5
 
 
|-
 
|-
| remoteTimeout
+
| ENVIRONMENT_CONFIG_SERVER_PORT
| Integer
+
| 8888
| Remote timeout
+
| The port number of the primary Configuration Server.
| N
 
| 7
 
 
|-
 
|-
| traceMode
+
| ENVIRONMENT_CONFIG_SERVER_PRIMARY_ADDRESS
| String
+
| 127.0.0.1
| Trace mode
+
| The IP address of the primary Configuration Server.
| N
 
| CFGTMBoth
 
 
|-
 
|-
| tlsEnabled
+
| ENVIRONMENT_CONFIG_SERVER_TENANT
| Boolean
+
| Environment
| Use tls to connect to Configuration Server
+
| The Configuration Server's tenant name.
| N
 
| false
 
 
|-
 
|-
| configServers
+
| CONTACT_CENTER_DOMAIN_NAME
| Array
+
| <nowiki>onpremiselab.com</nowiki>
| List of Configuration Servers in this environment (see bellow)
+
| The domain associated with this contact center. {{NoteFormat|While logging on to WWE, use the domain name as the tenant name.}}
| N
 
| empty array
 
 
|}
 
|}
  
=== Configuration Server Object ===
+
<ol start="5">
 +
<li>For Elasticsearch, the default operating system limits on '''mmap''' counts is likely to be too low, which may result in out-of-memory exceptions. To mitigate it temporarily, run the following:
 +
<pre>sudo sysctl -w vm.max_map_count=262144</pre>
 +
 
 +
To set this value permanently, update the '''vm.max_map_count''' setting in '''/etc/sysctl.conf'''. To verify after restarting, follow these steps:
 +
<pre>sudo sysctl vm.max_map_count</pre>
 +
</li>
 +
<li> Navigate to the '''/opt/genesys/gws/docker/wwe''' directory.</li>
 +
<li>Source the '''common-env''' file with environment variables:
 +
<pre>. ../common-env</pre>
 +
<li>Invoke<tt> docker-compose</tt>: 
 +
<pre>docker-compose up -d</pre>
 +
<li>Wait until <tt>docker-compose</tt> is up and running. It may take up to 10 minutes.</li>
 +
 
 +
==Verifying Web Services and Applications==
  
 +
Use the following links to get the expected versions of the Web Services and Applications components and verify they are correct:
 
{|
 
{|
 +
! '''Service'''
 +
! '''Verification URLs'''
 
|-
 
|-
! Name
+
| Authentication Service
! Type
+
| <nowiki>http://GWS_APPLICATIONS_IP:8080/auth/v3/version</nowiki>
! Description
 
! Required
 
! Default
 
|-
 
| primaryAddress
 
| String
 
| Address of primary Configuration Server
 
| Y
 
| --
 
 
|-
 
|-
| primaryPort
+
| Configuration Service
| Integer
+
| <nowiki>http://GWS_APPLICATIONS_IP:8080/configuration/v3/version</nowiki>
| Port of primary Configuration Server
 
| Y
 
| --
 
 
|-
 
|-
| backupAddress
+
| Environment Service
| String
+
| <nowiki>http://GWS_APPLICATIONS_IP:8080/environment/v3/version</nowiki>
| Address of backup Configuration Server
 
| N
 
| --
 
 
|-
 
|-
| backupPort
+
| Data Collector Service
| Integer
+
| <nowiki>http://GWS_APPLICATIONS_IP:8080/datacollector/v3/version</nowiki>
| Port of backup Configuration Server
 
| N
 
| --
 
 
|-
 
|-
| readOnly
+
| Workspace Web Edition
| Boolean
+
| <nowiki>http://GWS_APPLICATIONS_IP:8080/ui/wwe/index.html</nowiki>
| Indicates if Configuration Server works in read only mode
 
| Y
 
| --
 
|-
 
| locations
 
| String
 
| Location of Configuration Server
 
| Y
 
| --
 
 
|}
 
|}
  
==== Example ====
+
If the '''GWS_HTTPS_ENABLE''' option is set to <tt>true</tt>, HTTPS endpoints can be used for verification too:
<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
+
! '''Service'''
! Type
+
! '''Verification URLs'''
! Description
 
! Required
 
! Default
 
 
|-
 
|-
| environmentId
+
| Authentication Service
| String
+
| <nowiki>https://GWS_APPLICATIONS_IP:8443/auth/v3/version</nowiki>
| Environment id
 
| Y
 
| --
 
 
|-
 
|-
| domains
+
| Configuration Service
| Array
+
| <nowiki>https://GWS_APPLICATIONS_IP:8443/configuration/v3/version</nowiki>
| List of domains associated with this contact center
 
| N
 
| Empty list
 
 
|-
 
|-
| auth
+
| Environment Service
| String
+
| <nowiki>https://GWS_APPLICATIONS_IP:8443/environment/v3/version</nowiki>
| Authentication type for this contact center
 
| Y
 
| --
 
 
|-
 
|-
 +
| Data Collector Service
 +
| <nowiki>https://GWS_APPLICATIONS_IP:8443/datacollector/v3/version</nowiki>
 +
|-
 +
| Workspace Web Edition
 +
| <nowiki>https://GWS_APPLICATIONS_IP:8443/ui/wwe/index.html</nowiki>
 
|}
 
|}
 
==== Example ====
 
<pre>
 
POST .../environment/v3/contactCenters
 
  {
 
    "data": {
 
      "environmentId": "5",
 
      "domains": ["customerC.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>
 
  
 
[[Category:V:HTCC:9.0.0]]
 
[[Category:V:HTCC:9.0.0]]

Latest revision as of 20:02, December 22, 2020

Deploying Web Services and Applications in Docker Compose

This page provides instructions on preparing and deploying Web Services and Applications with Docker.

Important
  • To support Gplus Adapter for Salesforce, Docker Compose must be deployed with HTTPS.
  • To upgrade Web Services and Applications, you must install the new version of Web Services Docker Compose.

Prerequisites

For hardware, software, Workspace Web Edition, and Gplus Adapter for Salesforce requirements, refer to Prerequisites. Also, ensure your environment has access to docker.io/library. If internet access is not available, manually load the following public container images to the Docker registry:

Configuring Web Services and Applications

To configure Web Services and Applications, refer to Configuring Web Services and Applications.

Deploying Web Services and Applications

  1. Unpack the installation package file (e.g. IP_HTCCDev_9000207b1_ENU_dockerlinux.zip) , and navigate to the ip folder which should contain the following files:
    • gws-microservices.tgz
    • exported microservices in tar.gz format (e.g. gws-platform-configuration_9.0.000.50.tar.gz)
  2. Unpack the gws-microservices.tgz archive to the /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 the installation package: 
    • for i in *.tar.gz; do sudo docker load --input $i; done
    Important
    This command must be run with Docker-capable privileges.
  4. Edit the following values in the /opt/genesys/gws/kubernetes/parameters.yaml file:
Environment Variable Value Description
DOCKER_REPOSITORY Should be empty if the Web Services and Applications images are loaded manually.
REDIRECT_URIS \"http://uri1\",\"http://uri2\"

A comma-separated array of resolvable host names or IP addresses of the Docker host machine. Used as a part of the OAuth authentication flow.

Important
To access the lab deployment, it is mandatory to set resolvable host names or IP addresses for the Docker host machine.

The array should use double quotes and the quotes should be escaped using backslashes. The array should not have any white space between items.

DOCKERHUB_MIRROR Should be empty if the images of the Infrastructure components are loaded manually.
LOCATION /USW2 The location of Configuration Server.
Important
The Web Services and Applications cluster application object (typically names CloudCluster) in the Configuration Database must be configured with a specified location for each connection to Genesys servers like Configuration Server, Stat Server, T-Server, and so on. This setting defines which server instance is visible by the Web Services and Applications node based on its position in the Web Services and Applications Cluster.
GWS_HTTPS_ENABLE false The option to enable https support for deployment.
GWS_HTTPS_SERVER_CERTIFICATE server.crt The path to server certificate, which will be used during the SSL handshake with clients.
GWS_HTTPS_SERVER_CERT_KEY server.key The path to server key, which will be used during the SSL handshake with clients.
ENVIRONMENT_USERNAME default The username to connect to Configuration Server.
ENVIRONMENT_APPNAME GWS_App The application name to connect to Configuration Server. For details, refer to Creating GWS Client Application.
ENVIRONMENT_PASSWORD password The password to connect to 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 onpremiselab.com The domain associated with this contact center.
Important
While logging on to WWE, use the domain name as the tenant name.
  1. For Elasticsearch, the default operating system limits on mmap counts is likely to be too low, which may result in out-of-memory exceptions. To mitigate it temporarily, run the following:
    sudo sysctl -w vm.max_map_count=262144

    To set this value permanently, update the vm.max_map_count setting in /etc/sysctl.conf. To verify after restarting, follow these steps:

    sudo sysctl vm.max_map_count
  2. Navigate to the /opt/genesys/gws/docker/wwe directory.
  3. Source the common-env file with environment variables:
    . ../common-env
  4. Invoke docker-compose
    docker-compose up -d
  5. Wait until docker-compose is up and running. It may take up to 10 minutes.
  6. Verifying Web Services and Applications

    Use the following links to get the expected versions of the Web Services and Applications components and verify they are correct:

    Service Verification URLs
    Authentication Service http://GWS_APPLICATIONS_IP:8080/auth/v3/version
    Configuration Service http://GWS_APPLICATIONS_IP:8080/configuration/v3/version
    Environment Service http://GWS_APPLICATIONS_IP:8080/environment/v3/version
    Data Collector Service http://GWS_APPLICATIONS_IP:8080/datacollector/v3/version
    Workspace Web Edition http://GWS_APPLICATIONS_IP:8080/ui/wwe/index.html

    If the GWS_HTTPS_ENABLE option is set to true, HTTPS endpoints can be used for verification too:

    Service Verification URLs
    Authentication Service https://GWS_APPLICATIONS_IP:8443/auth/v3/version
    Configuration Service https://GWS_APPLICATIONS_IP:8443/configuration/v3/version
    Environment Service https://GWS_APPLICATIONS_IP:8443/environment/v3/version
    Data Collector Service https://GWS_APPLICATIONS_IP:8443/datacollector/v3/version
    Workspace Web Edition https://GWS_APPLICATIONS_IP:8443/ui/wwe/index.html
This page was last edited on December 22, 2020, at 20:02.
Comments or questions about this documentation? Contact us for support!