Command Center Installation

From Lingoport Wiki
Jump to navigation Jump to search

Pre-Requisites

Before installing or updating Command Center, please verify this section is complete.

Introduction

Basic Deployment Diagram

The Lingoport system clones repository either for Globalyzer or Localyzer, or both. Access to the VM with Docker is necessary in order to install the Lingoport products. That may be internal to the customer or on a system hosted and managed by Lingoport.

Furthermore, for Localyzer projects, resource files (files that need translation, not code) is sent to the LSP or the TMS.

  • Repositories may be inside or outside a customer's network
  • Lingoport Command Center System may be inside or outside a customer's network
  • Translation system, LSP may be inside or outside a customer's network.

This leads to a number of configurations, all supported by Lingoport, with security enforced either by Lingoport or by the customer in terms of IT, Firewall, access, etc.

IT

When Lingoport hosts Command Center access to the repositories and to the LSP/TMS will need to be granted. Lingoport will then be in charge of security which IP addresses have access to what part of the application or the API entry points.

When installing Command Center on premises, the customer IT group is very important to the successful deployment of the Lingoport applications when installing the suite on site. In particular, the IT group that sets up the Linux system must understand the usage model for the system. Lingoport requires a meeting with the parties responsible for setting up and maintaining the host system before installation can properly begin. The hope is that once the system is setup for installation, minimal IT interaction is necessary.


Preparations must be made with the IT team to ensure that all prerequisites are met before installation. For new installations, this is the recommended method to use to verify that all the various actors work together well.

Requirements

Before installing Command Center, the following needs to be configured:

  • Hardware
  • Linux
  • Docker
  • Firewall
  • Https

The next sections on this page address each one of these points and more.

Hardware & Software Requirements

The following sections describe the hardware and software requirements for Command Center.

Please note that the Globalyzer Server installation is in a different section.

Hardware Requirements

Element Required
CPU 2 (4 better)
Memory 32 GB
Disk 500 GB

The Globalyzer Server may be hosted by Lingoport, reside on another server, or be installed on the same system. Other Linux and Windows machines may have Globalyzer clients installed.

Software requirements

Since this is a Docker installation, most of the containers will be managed by Docker. However, volumes will be mounted on the Linux virtual machine and a database configuration file will reside on the VM: This requires Linux and a Docker installation.

Support Browsers and Versions

The following browsers are supported:

  • Chrome: 117+
  • Edge: 117+
  • Firefox: 71+

Access and Ports / Firewall

Command Center may need to be accessible by Lingoport and customer personnel to configure jobs, check the console if any problem arise, run jobs if necessary. Command Center needs to be accessible by many customer actors, including development teams, management, and QA, Lingoport, Translation Vendors.

Ports

Internal to company network
Services Ports Inbound (session) Outbound (session) Notes
SSH (for system config/maintenance) 22 Y N System configuration and maintenance
Command Center 8083 (HTTP) and/or 443 (HTTPS) Y N Default 8083 (configurable at install time) HTTPS requires reverse proxy Ex: Apache and Installation of SSL certificate.
Translation Vendor interactions: FTP/FTPS/SFTP (MemoQ, etc.) 21 (FTP) or 443 (FTPS) or 22 (SFTP - recommended) (FTP/S only) Y FTP/FTPS also require data ports (> 1024). Recommend SFTP if possible.
Translation Vendor interactions: Trados Enterprise, XTM and Memsource 80 (HTTP) optional. 443 (HTTPS) required. (Some cases) Y May need to be external if XTM/Memsource not installed on premise.
SMTP/SMTPS 25 or 465 or 587 N Y Depends on corporate mail setup.
Globalyzer Server (Optional) 80 or 443 N Y Only needed when Globalyzer Server is on premises
Repository Access 22 (SSH) 443 (HTTPS/S3) 3690 (SVN) 7990 (Bitbucket) 7999 (Bitbucket) 8080 (TFS) N Y VCS systems can vary, check with particular port(s) being used (Could be external/internal/both)

External access

Services Ports Inbound Outbound Notes
Lingoport SSH access 22 Y N Optional. Recommended for ease of upgrades and maintenance.
RHEL/CentOS/Ubuntu Packages 80 (Debian) 443 (RHEL) N Y Operating system packages access (Most likely external, but could be managed internally as well)
Globalyzer Server 80 and 443 N Y Access to Globalyzer Server in Lingoport Cloud for rule sets (Unless using on-premises Globalyzer Server)
hub.docker.com 80 and 443 N Y Command Center Image location
Repository Access 22 (SSH) 443 (HTTPS/S3) 3690 (SVN) 7990 (Bitbucket) 7999 (Bitbucket) 8080 (TFS) N Y VCS systems can vary, check with particular port(s) being used (Could be external/internal/both)

HTTPS

HTTPS is recommended but not necessary for the Command Center installation. HTTPS may already be set up or your IT may have a standard on how to set up HTTPS. If that's the case, go the next section.

Otherwise, follow this link for a suggested HTTPS configuration:

HTTP/2

HTTP/2 is recommended but not necessary for the Command Center installation as it will provide a noticeable performance boost when leveraged. HTTP/2 does require HTTPS be used so this will only be possible if the previous HTTPS configuration has already been performed.

If HTTP/2 support will be added, follow this link for a suggested HTTP/2 configuration:

Email Sender

Email notifications are sent to a project configured recipients . See Create a new project after this installation. For those notifications to be sent, the following will be configured in the settings.

The following information will then be needed:

  • Host URL (like smpt.gmail.com for instance)
  • Authorization method (SMTP, SMTPS, etc.)
  • Sender email address (localyzer@customerdomain.com for instance)
  • Sender password

Docker Install

Docker is a platform that allows you to easily develop, test, and deploy applications as containers. This section will walk you through the process of installing Docker on a Linux system.

The supported versions of Linux are:

Other versions of Linux may work correctly, but these are the versions and processes that have been verified.

Credentials

When deploying Command Center, the configuration determines if the user management is done by Command Center itself, via an LDAP, or via SSO (using SAML).

Command Center User Database

One administration user is configured when Command Center is installed. Contact support (at) lingoport (dot) com in order to get an administration user and password. That user can then create Command Center users. It is strongly recommended to change the first administration password and keep it safe.

LDAP

  • LDAP Connection
  • Management

SSO

  • SSO Connection
  • Management

See: Command Center SSO Installation

New Command Center Installation

sudo user

A user, such as centos or ec2-user, with sudo privileges is required as the user under which to install Command Center.

  • Note: This should not be the legacy jenkins user.

Create the database conf file

Use the sudo user home for Docker, such as /home/centos for CentOS systems and /home/ec2-user for RedHat virtual systems.

The mysql and conf.d folders may need to be created as well.

vi /home/<user>/mysql/conf.d/mysql.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4

Configuration

Get the installation and update scripts and the install.conf file from the main branch of this public repository:

You should have files such as:

   install.conf
   BackupCommandCenterDatabase.sh
   InstallCommandCenter.sh
   UninstallCommandCenter.sh
   UpdateCommandCenter.sh

If you need to install SSO version, the relevant files are:

   install.conf
   BackupCommandCenterDatabase.sh
   InstallSSOCommandCenter.sh
   UninstallCommandCenter.sh
   UpdateSSOCommandCenter.sh
   saml_configuration.conf

Copy the above files under your home directory, for instance <user>/commandCenterInstall where <user> may be /home/centos or /home/ec2-user.

Set up install.conf

Unless directed otherwise, change the top part of the install.conf file.

Set up saml_configuration.conf if you are going to use SAML

The initial version number will be provided for the first installation.

For updates, command_center_image_version will be the only parameter to change in the install.conf file.

# Provide the Command Center version
# For *Regular* Updates, this should be the only parameter to change
command_center_image_version=113

Make sure to keep a copy of that file in case you overwrite it when updating from the https://github.com/Lingoport/CommandCenterConfig Git repository

#
# After Install, Updates should not need to change anything below
# ----------------------------------------------------------------

# The Server URL: '"https://yourserver/command-center"'
serverURL='"https://SERVER_DNS_HERE/command-center"'

# Provide the home directory, lingoport/commandcenter/Lingoport_Data
# folder will be created
home_directory=/home/centos

# Provide the Command Center server port
serverPort=8083

Run InstallCommandCenter.sh

    chmod +x *.sh
    sudo ./InstallCommandCenter.sh

If you are using sso version installer, run

    chmod +x *.sh
    sudo ./InstallSSOCommandCenter.sh

To check the running container status

   sudo docker ps

Re-install Command Center

If you need to re-run the InstallCommandCenter.sh, make sure to run UninstallCommandCenter.sh first to clean your environment.

  • Uninstall Command Center
  sudo ./UninstallCommandCenter.sh
  • Verify that Command Center and the database is no longer in the list
  sudo docker ps 
  • Remove the image to download and install again
  sudo docker image ls
  sudo docker image rm --force <command center image ID>
  • Start the install again
  sudo ./InstallCommandCenter.sh


Note: Docker image version is not the Command Center version, check latest docker image version at https://hub.docker.com/repository/docker/lingoport/command-center_dev/general

You should see at least an MySQL and a Command Center container running.

Note: Database backup

To backup the database, run the following script:

    chmod +x *.sh
    sudo ./BackupCommandCenterDatabase.sh

The database backup sql file will be under $home_directory/commandcenter/backup folder, named commandcenter_backup_$current_date.sql

Right after installation, the backup is not necessary. However, as you configure and on-board projects, you may want to set up a backup strategy. To backup the database periodically, schedule to run BackupCommandCenterDatabase.sh on a regular basis, for instance with a Cron service.

Verify Installation

Log in to the URL based on the command-center-config.sh settings, so something like:

   https://commandcenter.mycompany.io/command-center


You should now be able to install the licenses and create projects.

The Command Center will initially have one Administrator user CCAdmin with the password please.reset.me.

If the installation is unsuccessful for any reason, do not try to re-install. Instead, uninstall, make any needed changes, and re-install to avoid conflicts.

sudo ./UninstallCommandCenter.sh

Command Center Version Upgrade

Important Container Related Considerations Before Beginning

It is important to note that because Command Center is a container based installation so when it is upgraded, the existing container is no longer used. Therefore, if it was necessary to make any changes inside of the container in order to support specific requirements, they will need to be backed up manually prior to the upgrade or possibly reconfigured manually post upgrade. Example items that would fall into this category would be similar to, but not limited to:

  1. Modifications to the tomcat.xml - Normally limited to https support on SSO/SAML systems
  2. Signed Git commit support
  3. Additional binaries added via apt to the the container for network testing etc.
  4. Internal RootCA support required for specific repository constraints found in SVN or other applications that Command Center may need to communicate with that requires a verifiable SSL certificate.
  5. Proxy support
  6. TFS (deprecated at this time)

For items that require a configuration file, the simplest method is to create unique directory in the Lingoport_Data directory while logged into the container and copy the file(s) to that directory. This directory is not recreated or overwritten during upgrades so its a convenient location to store files that will need to put back into the container post upgrade.

Update Installation Scripts to Associated Version for Release

The installation scripts are correlated with specific versions of Command Center, so prior to updating Command Center, obtain the associated installation scripts.

Make sure to make a copy of the install.conf file used previously in case it's overwritten by the git pull / git clone below. Alternatively have a copy of the scripts in their own directory that can be updated manually once the local git repository has been updated.

Make sure to update the installation and update scripts and the install.conf file from the main branch of this public repository:

The branch version that you will want to pull is based upon the version of Command Center you will be upgrading to. Follow the guidance in the below table as examples.

Command Center to Branch Mapping
Command Center Version Installation Script Branch
4.1.2 4.1
4.2.33 4.2


Go into the directory that contains your local git checkout and perform the following:

# Pulls down any changes since the last time the local repository was updated
git pull

# This will switch the local repo to the associated branch.  
# Ex: git switch 4.2 will switch the repo to the 4.2 branch
git switch <Branch Name>

# To check the status and make sure the shell scripts have been updated
git status 

Note: You may need to chmod -x the scripts under DockerScripts before git pull.

Edit install.conf

Change the version number in the install.conf to get the Command Center image update version.

 command_center_image_version=<new version number>

See full Configuration above.

Place Command Center Into Maintenance Mode

Before running the actual upgrade, be sure to place Command Center into Maintenance mode via the UI. Here are the steps.

  1. Login into Command Center using an administrator role account.
  2. Ensure sure there are no current jobs running in CC by examining the Running and Queued Jobs Icon in the toolbar.
    1. If there are jobs currently running or in the queue, you must wait until the queue empties and all jobs have completed before continuing.
  3. Select the Gear Icon and turn on Maintenance mode

By turning on maintenance mode you have effectively blocked activity in Command Center so that the upgrade can be performed knowing that nothing was "in process" while the upgrade was occurring.

Once the upgrade is completed, Command Center will restart and will no longer be in Maintenance Mode

Run UpdateCommandCenter.sh

Note: If you are using SSO version installer, run UpdateSSOCommandCenter.sh instead of UpdateCommandCenter.sh below

chmod +x UpdateCommandCenter.sh
sudo ./UpdateCommandCenter.sh

The installation process will begin at this point. The entire process will take 5-10 minutes on most VMs. Simply wait for the prompt to return before continuing past this point.

To check the running container status once the process has completed.

sudo docker ps

As part of the installation process a DB backup is performed automatically. The database backup sql file is in $home_directory/commandcenter/ folder, named commandcenter_backup_$current_date.sql

Restore Backed Up Items in the Container

Any backups made for files in the container should now be restored in the container to return to the state it was prior to the upgrade. The list of possible items is the same as listed prior, shown here for convenience.

  1. Modifications to the tomcat.xml - Normally limited to https support on SSO/SAML systems
  2. Signed Git commit support
  3. Additional binaries added via apt to the the container for network testing etc.
  4. Internal RootCA support required for specific repository constraints found in SVN or other applications that Command Center may need to communicate with that requires a verifiable SSL certificate.
  5. Proxy support
  6. TFS (deprecated at this time)

As a general rule, restart the container once these have been added so they can be sure to take effect.

Version Upgrade Validation

Always perform a sanity check on the UI once the system has upgraded.

When the landing page is available, check the version number in the lower right hand corner of the page. That should be updated to the version installed.

Log into Command Center and perform a few simple tasks to ensure that everything upgraded smoothly. Some tasks that are quick to validate are the following:

  1. Run a Localyzer project that will run relatively quickly to confirm functionality in Localyzer.
  2. Check String Manager for that project to ensure that it is populating as expected.
  3. Run a Globalyzer project to ensure that it is running as expected and provides an updated output of issues.

Start and Stop System

  • From Command Center, as an administrator, go to settings and click 'Restart'
  • From the VM, use docker commands to stop or start Command Center. For example:
  
sudo docker ps
sudo docker stop <hash>
sudo docker ps
    
sudo docker container ls -a | grep command
sudo docker start <hash>
sudo docker ps

Uninstall Command Center

 sudo ./UninstallCommandCenter.sh
 Uninstalling the Command Center Servers ...
 sudo docker ps
 CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

FAQ and Troubleshooting

Make sure the Server URL is reachable

Navigate to the server URL set up in install.conf: is the login screen available?

If it is not, first check that the docker container is up and running. Make sure both lingoport/command-center and mysql are running.

 sudo docker container ls -a 
 CONTAINER ID   IMAGE                         COMMAND                  CREATED      STATUS       PORTS                                       NAMES
 3d9da7a80e0a   lingoport/command-center:80   "catalina.sh run"        3 days ago   Up 6 hours   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   pedantic_aryabhata
 683c55907c06   mysql:8.0                     "docker-entrypoint.s…"   3 days ago   Up 6 hours   3306/tcp, 33060/tcp                         quizzical_newton

Check with IT that the DNS for that system is correct.

Check with IT that the firewall allows for reaching the URL from your system.

Ask IT to check the https and the server URL / DNS.

To check files on disk

To troubleshoot, it may be necessary to check files handled by Docker, such as looking for reports under Lingoport_Data. In that case, first use the Docker PS command to get the container ID of the Command Center application.

 sudo docker container ls -a 
 CONTAINER ID   IMAGE                         COMMAND                  CREATED      STATUS       PORTS                                       NAMES
 3d9da7a80e0a   lingoport/command-center:80   "catalina.sh run"        3 days ago   Up 6 hours   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   pedantic_aryabhata
 

With the container ID, execute the following command to run bash with access to those files:

 sudo docker exec -it 3d9da7a80e0a bash

How to backup and restore a system

If you have a system that you want to install a new version of Command Center, but keep the current configuration, here are the steps to do that.

  • Backup the Command Center databases
  sudo ./BackupCommandCenterDatabase.sh 

This will create two files <home>/commandcenter/backup/commandcenter_backup_YYYY-MM-DD_HHMMSS.sql and <home>/commandcenter/backup/LRM_backup_YYYY-MM-DD_HHMMSS.sql Where YYYY-MM-DD is the current date.

  • Stop the currently running Command Center container and its associated MySQL container
  sudo docker ps
  sudo docker stop <Command Center Container ID> <MySQL Container ID>
  sudo docker ps
  • Modify the install.conf file for the correct version of Command Center to install
  • Install Command Center
  sudo ./InstallCommandCenter.sh

If there is an error about the container in use, remove the container that is identified and attempt the install again.

  sudo docker rm <container>
  sudo ./InstallCommandCenter.sh
  • Verify that Command Center comes up in the browser. Login with the CCAdmin user. There should be no projects or configuration set up
  • Restore from the database
  sudo ./RestoreCommandCenterDatabase.sh YYYY-MM-DD_HHMMSS
  • Verify that Command Center is populated with the correct information

Moving from a non SSO to an SSO configuration

If you need to update your Command Center from non SSO version to SSO version, you need to have samlpath set up in install.conf file, and idp.xml, sp.xml, saml_configuration.conf and saml-keystore.jks file must be in this directory

# Provide your saml directory, idp.xml, sp.xml, saml_configuration.conf and saml-keystore.jks file must be in this directory
samlpath=

See: Command Center SSO Installation

Once the configuration has been updated properly, its possible to run the conversion script to migrate the system over to SSO SAML by running the below script.

SwitchToSSOCommandCenter.sh 

If you are updating CommandCenter from SSO version to non-SSO version, only run SwitchToNonSSOCommandCenter.sh

Next Steps

Command Center is now ready to be used. Proceed to the URL configured in the installation and follow the User's Guide's steps.