(5.4+) IVG installer process
After configuring the pool of IVG servers through the IVG Setup Wizard, the installer automatically installs the necessary components onto the designated Virtual Machine (VM).
Overview
This article details the actions taken by the IVG installer for different deployment models. Consult any section below for more information on the installer process for your deployment model:
- Considerations before installing
- Executing the IVG prerequisite check
- Standalone IVG deployments
- IVG deployed on multiple VMs
- IVG installer commands
Installing on higher OS versions
If you attempt to install on a higher minor version of the OS, dependency conflicts may occur. In this case, the IVG installer will:
- Detect the dependency on the server and check its version.
- Determine that the dependency version is different than expected.
- Attempt to install any dependent applications from the Yum repository if an internet connection is available.
- Present an error message to the user if the installation from Yum fails, or if no internet connection is available. The error message will detail the specific dependency and the version needed, then the installer will abort the installation process.
Installing with LDAP
If the install_ivg.cfg file is configured to use LDAP user accounts and groups (ldap=yes), the uninstall_ivg.cfg file will be updated to ensure the uninstaller will not remove the users, groups, and installation paths for HVP, PostgreSQL, and Tomcat.
Executing the IVG prerequisite check
The IVG prerequisite check performs the following steps:
- Verifies an IP address is allocated to the VM
- Verifies the correct version of CentOS or RHEL is installed
- Verifies the RHEL subscription is registered, if applicable
- Verifies the OS architecture is 64-bit
Refer to the On-Premise Callback Compatibility and Integration Matrix for supported OS versions.
- Verifies /etc/fstab is found to mount tmpfs on /tmp
- Verifies the installation and correct version of the OS dependencies for the voice platform. The prerequisites and their supported versions are located in the prerequisites folder of the ivginstaller-XXXX.zip file
- If a dependency is not installed, the installer installs the supported version of the dependency.
- If a supported version of a dependency is already installed, the installer skips to the next dependency.
- If a lower version of a dependency is installed, the installer uninstalls the lower version and installs the supported version.
- If a higher version of a dependency is installed, the installer skips the dependency and moves to the next.
- If a 32-bit version of a dependency is installed, the installer terminates.
For a complete list of dependencies, refer to the Linux Operating System Prerequisites article for your version of IVG.
- Verifies the/ partition has 1 GB of free disk space; we recommend at least 1 GB of disk space for installation of the necessary Linux operating system dependencies.
- Verifies the hollyinstallpath partition has 5 GB of free disk space; we recommend at least 5 GB of disk space for installation of the HVP components used by IVG.
- Verifies the /tmp partition has 4 GB of free disk space; werecommend at least 4 GB of disk space for temporary storage of fetched audio, documents, and scripts.
- Verifies the Swap space is equal to the amount of memory (RAM); we recommend that the Swap space be equal to the memory space.
LDAP prerequisite check
If the install_ivg.cfg file is configured to use LDAP user accounts and groups for the installer, the following additional checks will be performed after the default prerequisite checks pass:
- Verifies that users for PostgreSQL, Holly, and Tomcat and groups for PostgreSQL, Holly, Tomcat, and Realtime exist in the LDAP environment
- Logs into the LDAP user accounts and verifies that home directories exist for each
- Verifies that the configured installation paths match the relevant users' home directories
- Verifies that the configured OS groups exist in the LDAP environment
- Verifies that users for PostgreSQL, Holly, and Tomcat and groups for PostgreSQL, Holly, Tomcat, and Realtime do not exist locally on the IVG server
If any of the LDAP prerequisite checks fail, the installer will stop and display an error message.
Standalone IVG deployments
In a standalone deployment, the IVG installer installs all necessary components and prerequisites onto a single VM.
Standalone IVG installer process
The installer completes the following steps for a standalone deployment:
- Sets server umask value to 0022. Setting umask to 0022 instead of 0027 allows all users to read, write, and run files from all directories. This permits full usage of IVG.
- Prepares the Linux environment:
- Adds hostname (short name), FQDN, and IP address to the /etc/hosts file
- Enables Firewalls
- Turns on IP tables
- Checks for SELinux status (enabled or disabled)
- Verifies the installation and correct version of the OS dependencies for the voice platform; the prerequisites and their supported versions are located in the prerequisites folder of the ivginstaller-XXXX.zip file.
- Installs the PostgreSQL database with SCRAM authentication enabled
- Installs the httpd dependency, including the additional modules mod_ssl and mod_proxy_uwsgi.
- Installs HVP and any required patches
- Creates the voice platform database with tablespace for:
- Configuration
- Logs
- Starts the required HVP workers
- Applies performance enhancement default values
- Creates the voice platform database with tablespace for:
- Installs the SELinux security policies by executing the install_hollyhvp_selinux_policy script
If SELinux is enabled, the IVG Installer provides an option to install SELinux policies. The policies allow HVP to function normally during SELinux enforcement, and avoid SELinux imposing limitations on the installation and operation of the platform. Please refer to Section 6 of the HVP Installation Guide for further information.
- Configures the voice platform parameters
- Enables SSL/TLS if selected in the IVG Setup Wizard
- Configures the SMTP server if selected in the Setup Wizard
- Configures Sentinel email if selected in the Setup Wizard
- Provisions the voice platform applications
- Installs VXML Interaction Server (VIS) and its dependencies:
- Verifies the supported version of Java Runtime Environment (JRE) is installed; if a supported version of Java is already installed, the installer skips this step. If an unsupported version of Java is installed, the installer uninstalls the unsupported version and installs the supported version.
- Verifies the supported version of Apache Tomcat is installed
- Publishes the VIS .war files in the tomcat/webapps folder
- Publishes the voices media files to the webapps folder
- Creates the name files folder under tomcat/webapps/ROOT
- Configures the toolkit.properties file in the /etc/VirtualHold folder
- Creates a cron job to delete customer name files older than 8 days
- Creates a cron job to delete PostgreSQL logs older than 30 days
- Sets the OpenSSL certificate expiration date to the value specified in the install_ivg.cfg file; the default expiration is 365 days in the future.
- Runs the HVP Call Control Interaction Server (CCIS) installation
- Publishes the ccis.war file under tomcat/webapps
- Configures the voice platform parameters from the hvp_params.cfg file
- Creates the uninstall_ivg.cfg file and places it at /etc/VirtualHold/
- Restarts HVP services to complete the installation
- Finishes the installation by restarting the VM
IVG deployed on multiple VMs
In a multi-VM deployment, the installer must be run on each VM in the solution. The first VM will contain the database and the first IVG instance. Subsequent VMs will contain the additional IVG instances.
IVG and local PostgreSQL database installer process
The IVG Installer performs the following steps to install the PostgreSQL database on the first VM:
- Sets server umask value to 0022
- Prepares the Linux environment:
- Adds hostname (short name), FQDN, and IP address to the /etc/hosts file.
- Enables firewalls
- Turns on IP tables
- Checks for SELinux status (enabled or disabled)
- Installs the PostgreSQL database with SCRAM authentication enabled
- Installs the httpd dependency, including the additional modules mod_ssl and mod_proxy_uwsgi.
- Installs HVP and any required patches
- Creates the voice platform database with tablespace for:
- Configuration
- Logs
- Starts the required HVP workers
- Applies performance enhancement default values
- Creates the voice platform database with tablespace for:
- Installs the SELinux security policies (if enabled in Step 2) by executing the install_hollyhvp_selinux_policy script
If SELinux is enabled, the IVG Installer provides an option to install SELinux policies. The policies allow HVP to function normally during SELinux enforcement and avoid SELinux imposing limitations on the installation and operation of the platform. Please refer to Section 6 of the HVP Installation Guide for further information.
- Configures the voice platform parameters
- Enables SSL/TLS if selected in the IVG Setup Wizard
- Configures the SMTP server if selected in the Setup Wizard
- Configures the Sentinel email if selected in the Setup Wizard
- Provisions the voice platform applications
- Installs VXML Interaction Server (VIS) and its dependencies:
- Verifies the supported version of Java Runtime Environment (JRE) is installed. If a supported version of Java is already installed, the installer skips this step. If an unsupported version of Java is installed, the installer uninstalls the unsupported version and installs the supported version.
- Verifies the supported version of Apache Tomcat is installed
- Publishes the VIS .war files to the tomcat/webapps folder
- Publishes the voices media files to the webapps folder
- Creates the customer name files folder under tomcat/webapps/ROOT
- Configures the toolkit.properties file in the /etc/VirtualHold folder
- Creates a cron job to delete name files older than 8 days
- Creates a cron job to delete PostgreSQL logs older than 30 days
- Runs the HVP Call Control Interaction Server (CCIS) installation
- Publishes the ccis.war file under tomcat/webapps
- Configures the voice platform parameters from the hvp_params.cfg file
- Creates the uninstall_ivg.cfg file and places it at /etc/VirtualHold/
- Restarts HVP services to complete the installation
- Finishes the installation by restarting the VM
IVG and remote PostgreSQL database installer process
The IVG Installer performs the following steps to install IVG on subsequent VMs:
- Sets the server umask value to 0022; setting the umask to 0022 instead of 0027 allows all users to read, write, and run files from all directories. This permits full usage of IVG.
- Prepares the Linux environment.
- Adds hostname (short name), FQDN, and IP address to the /etc/hosts file
- Enables firewalls
- Turns on IP tables
- Checks for SELinux status (enabled or disabled)
- Installs the httpd dependency, including the additional modules mod_ssl and mod_proxy_uwsgi.
- Installs HVP and any required patches.
- Creates the voice platform database with tablespace for:
- Configuration
- Logs
- Starts the required HVP workers
- Applies performance enhancement default values
- Creates the voice platform database with tablespace for:
- Installs the SELinux security policies (if enabled in Step 2) by executing the install_hollyhvp_selinux_policy script
- Configures the voice platform parameters
- Enables SSL/TLS if selected in the IVG Setup Wizard
- Configures the SMTP server if selected in the Setup Wizard
- Configures Sentinel email if selected in the Setup Wizard
- Provisions the voice platform applications
- Installs VXML Interaction Server (VIS) and its dependencies:
- Verifies the supported version of Java Runtime Environment (JRE) is installed. If a supported version of Java is already installed, the installer skips this step. If an unsupported version of Java is installed, the installer uninstalls the unsupported version and installs the supported version.
- Verifies the supported version of Apache Tomcat is installed
- Publishes the VIS .war files in the tomcat/webapps folder
- Publishes the voices media files to the webapps folder
- Creates the customer name files folder under tomcat/webapps/ROOT
- Configures the toolkit.properties file in the /etc/VirtualHold folder
- Creates a cron job to delete name files older than 8 days
- Creates a cron job to delete PostgreSQL logs older than 30 days
- Sets the OpenSSL certificate expiration date to the value specified in the install_ivg.cfg file; the default expiration is 365 days in the future.
- Runs the HVP Call Control Interaction Server (CCIS) installation
- Publishes the ccis.war file under tomcat/webapps
- Creates the uninstall_ivg.cfg file and places it at /etc/VirtualHold/
- Restarts HVP
- Finishes the installation by restarting the VM.
This installation process is repeated for any additional IVG instances installed on dedicated VMs.
Multi IVG and remote PostgreSQL database
In a multi-VM deployment with a remote PostgreSQL database, the installer must be run on each VM in the solution. The first VM will contain the database and the first IVG instance, and subsequent VMs will contain the additional IVG instances. This type of solution can be deployed in a Standalone or High Availability On-Premise Callback deployment.
Standalone VHT Callback deployment
High Availability VHT Callback deployment
Standalone PostgreSQL installer process
The IVG Installer performs the following steps to install the PostgreSQL database on the first VM:
- Installs the prerequisites for PostgreSQL. The prerequisites and supported versions are located in the prerequisites folder of the ivginstaller-XXXX.zip file:
- expect
- perl
- postgresql95
- postgres-client
- ruby
- Installs the PostgreSQL database
- Creates the uninstall_ivg.cfg file and places it at /etc/VirtualHold/
IVG installer commands
The IVG installer process executes commands as both root and sudo user.
The following IVG installer commands require root access:
Run as | Command |
---|---|
root | /usr/bin/bash |
root | /usr/bin/cat |
root | /usr/bin/chgrp |
root | /usr/sbin/chkconfig |
root | /usr/bin/chmod |
root | /usr/bin/chown |
root | /usr/bin/cp |
root | /usr/bin/crontab |
root | /usr/bin/curl |
root | /usr/bin/cut |
root | /usr/bin/date |
root | /usr/bin/df |
root | /usr/bin/dos2unix |
root | /usr/bin/echo |
root | /usr/bin/egrep |
root | /usr/bin/expect |
root | /usr/sbin/exportfs |
root | /usr/bin/file |
root | /usr/bin/find |
root | /usr/bin/findmnt |
root | /usr/bin/firewall-cmd |
root | /usr/bin/free |
root | /usr/bin/getent |
root | /usr/bin/grep |
root | /usr/sbin/groupadd |
root | /usr/sbin/groupdel |
root | /usr/sbin/groupmod |
root | /usr/bin/head |
root | /usr/bin/hostname |
root | /usr/bin/id |
root | /usr/sbin/iptables |
root | /usr/bin/java |
root | /usr/bin/kill |
root | /usr/bin/logger |
root | /usr/bin/ls |
root | /usr/bin/mkdir |
root | /usr/bin/mount |
root | /usr/bin/mv |
root | /usr/sbin/nologin |
root | /usr/bin/openssl |
root | /usr/bin/passwd |
root | /usr/bin/pgrep |
root | /usr/sbin/postconf |
root | /usr/sbin/postmap |
root | /usr/bin/ps |
root | /usr/bin/psql |
root | /usr/bin/read |
root | /usr/bin/rev |
root | /usr/bin/rm |
root | /usr/bin/rmdir |
root | /usr/bin/rpm |
root | /usr/bin/sed |
root | /usr/sbin/service |
root | /usr/bin/sh |
root | /usr/sbin/showmount |
root | /usr/sbin/shutdown |
root | /usr/bin/sleep |
root | /usr/bin/sort |
root | /usr/bin/su |
root | /usr/bin/sudo |
root | /usr/bin/systemctl |
root | /usr/bin/tail |
root | /usr/bin/tar |
root | /usr/bin/tee |
root | /usr/bin/touch |
root | /usr/bin/tr |
root | /usr/bin/umask |
root | /usr/bin/umount |
root | /usr/bin/uname |
root | /usr/sbin/update-alternatives |
root | /usr/sbin/useradd |
root | /usr/sbin/userdel |
root | /usr/sbin/usermod |
root | /usr/bin/wc |
root | /usr/bin/xargs |
root | /usr/bin/yum |
root | exit |
root | eval |
root | export |
root | return |
root | set |
root | source |
root | type |
IVG installer sudo commands
The following IVG installer commands require sudo access:
Run as | Command |
---|---|
sudo | /usr/bin/echo |
sudo | /usr/bin/mkdir |
sudo | /usr/bin/cp |