Difference between revisions of "Lingoport Suite Installation"
|Line 418:||Line 418:|
Use an SFTP client, such as [[
Use an SFTP client, such as [[https://winscp.net/eng/index.php]] or from the system where the installation will take place, a command like:
Revision as of 20:35, 1 December 2021
- 1 Versions of Lingoport products and supporting applications
- 2 Systems Configuration
- 3 On Site: IT Participation
- 4 Stack Installer and Stack Updater
- 5 Hardware & Software Requirements
- 6 Access and Ports
- 7 Installation and Upgrade Order
- 7.1 Acquiring the Stack Installer / Stack Updater from Lingoport
- 7.2 Installing with the Stack Installer
- 7.3 Updating with the Stack Updater
- 7.4 Manual installation and upgrade
- 8 Lingoport Customer Support
Versions of Lingoport products and supporting applications
If your Continuous Globalization System is installed using the Stack Installer, these products and applications will be installed via that method. These are minimum versions and anything higher is acceptable.
Requisite software products and versions
|1.8**||5.7||CentOS 7 & RHEL 7||2.771+||8.5.x|
|1.8**||5.7||CentOS 7 & RHEL 7||2.235+||8.5.x|
|1.8**||5.7||CentOS 7 & RHEL 7||2.207+||8.5.x|
|1.8**||5.6||CentOS 7 & RHEL 7||2.172+||8.5.x|
|Date||Suite||Globalyzer||Localyzer||InContext QA||Dashboard||LingoBot||LingoBot CLI||JDK||MySQL||Linux||Jenkins||Tomcat*|
Updated December 2019
*Tomcat is required only for the Globalyzer Server. If a customer chooses to use Lingoport's hosted Globalyzer Server for user administration and rule set creation, the Tomcat requirement is not applicable.
**At this time only Java 1.8 is supported. Java 1.9 is not supported, but will be in future releases.
The components of the Lingoport Suite are covered in the Lingoport Introduction section. That section should be reviewed before installation.
The Lingoport Products can be configured in a variety of ways. The following describes our recommended configuration for a Continuous Globalization System, where both internationalization and localization progress is tracked, managed and displayed in an automated and reliable process.
Important Note : The Dashboard System and the Continuous Globalization system can be the same machine. This is the most frequent deployment scenario. It is recommended that this configuration be installed with the Stack Installer. The same machine can also host the Globalyzer Server.
To see more deployment scenarios, please refer to Deployment Scenarios . Make sure to choose a deployment scenarios with the IT department before starting the installation.
On Site: IT Participation
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.
Stack Installer and Stack Updater
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.
Hardware & Software Requirements
The following sections describe the hardware and software requirements for each piece of the Lingoport Suite applications.
The following table lists the system specifications for installing the Globalyzer Server on a dedicated Linux machine. The disk size assumes that the database is also installed on the machine; it could be less if the database is on a separate server. If the server machine is running more than the Globalyzer Server, we recommend increasing CPU and memory.
|Memory||8 GB||16 GB|
|Disk||160 GB||500 GB|
The current versions of these software products can be found at: Current versions of Lingoport products and supporting applications
|Operating System||Linux, CentOS (7) or RedHat (7)|
|Java Standard Edition||Java JDK|
Lingoport Continuous G11n Server
Continuous Globalization System Hardware Requirements
|Memory||16 GB||16 GB|
|Disk||160 GB||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. The current versions of these software products can be found at: Current versions of Lingoport products and supporting applications.
Access and Ports
Jenkins need to be accessible by Lingoport and customer personnel to configure jobs, check the console if any problem arise, run jobs if necessary. The Dashboard needs to be accessible by many actors, including customer development teams, management, and QA, Lingoport, Translation Vendors.
Please see External Access and Ports for all the details.
Installation and Upgrade Order
Acquiring the Stack Installer / Stack Updater from Lingoport
Please contact Lingoport for credentials to retrieve the Stack Installer and Stack Updater.
There are 2 download options: Retrieval via SFTP, and retrieval from an AWS S3 bucket.
Lingoport will provide your corporation with an SFTP account upon request.
Retrieve the latest content from our SFTP server using the following config:
Server URL: lingoport.net SFTP ports: 22 (default), 2022 (alternate) Username: To be provided by Lingoport Password: To be provided by Lingoport (or you may also provide Lingoport with a public key to authorize).
Use an SFTP client, such as [] or from the system where the installation will take place, a command like:
sftp firstname.lastname@example.org:install/stackinstaller/stack-installer-<release>.<number>.zip sftp email@example.com:install/stackupdater/stack-updater-<release>.<number>.zip
You will need to install the AWS S3 client, and use credentials provided by Lingoport.
Install AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
Configure AWS CLI:
cat <<EOF >> ~/.aws/config [default] region=us-east-1 output=json EOF
cat <<EOF >> ~/.aws/credentials [default] aws_access_key_id=<Access Key ID provided by Lingoport> aws_secret_access_key=<Access Key Secret provided by Lingoport> notes="Minimal access: stack installer / stack updater s3 bucket" EOF
aws s3 ls s3://lingoport-suite-setup/stack-installer/ aws s3 cp s3://lingoport-suite-setup/stack-updater/stack-updater-Honduras.004.zip .
Installing with the Stack Installer
Here are the installation steps.
- Get the Stack Installer zip file and put it on the new server in the home directory of a user with root (sudo) access.
- Login to the console on the system as the user with root access.
- Unzip the Stack Installer zip file.
- A new machine might not have the
unzipcommand installed. To get the unzip command:
> sudo yum install unzip
> unzip stack-installer.zip
> cd stack-installer
- A new machine might not have the
- Edit the configuration files to automate the process.
login-info.conf. Here is an example:
# Globalyzer Login details GLOBALYZER_USER="firstname.lastname@example.org" GLOBALYZER_PASS="abcdef" GLOBALYZER_SERVER_URL="https://www.globalyzer.com/gzserver/" # Server Address or IP - the server this is being installed on SERVER_URL_OR_IP="https://some.domain.com" # Lingoport/Localyzer MySQL user - probably doesn't need to be changed LINGOPORT_MYSQL_USER="lingoport" LINGOPORT_MYSQL_PASS="lingopwd" # Lingoport Dashboard MySQL user - probably doesn't need to be changed DASHBOARD_SONAR_USER="lingodashuser" DASHBOARD_SONAR_PASS="lingodashpass"
lrm-license.conf. This information should be supplied by Lingoport prior to installation. If you bought a license that includes InContext QA, enter the expiration date. If not, enter the information as below. If the
LRM_INCONTEXT_QA_EXPIRATION_DATEis removed, an error will occur.
COMPANY_NAME='ACME' # e.g. DemoCo LRM_MAX_PROJECTS='1000' # e.g. 5 LRM_LICENSE_EXPIRATION_DATE='2019-01-15' # e.g. 2018-01-01 LRM_INCONTEXT_QA_EXPIRATION_DATE= LRM_LICENSE_KEY='123456789'
./full-install.sh. You may be prompted for some passwords.
- At this point, Jenkins and the Dashboard should be up and running. Go to Jenkins in a browser at
https://some.domain.com/jenkins(some.domain.com is an example of the IP or URL supplied in login-info.conf). All the scripts should be installed and the tabs created.
- Go to Dashboard in a browser
- Login to the Dashboard with the Administrator user (admin). Initially the password is also 'admin'.
- To change your password after logging in, look for 'Administrator' on the top right. Click it then 'My Account'. There will be a 'Security' tab in the mid left of the page. This will open a page that allows you to change your password.
- To add additional Dashboard users, click on 'Administration' on the top middle of the page (this is different than 'Administrator', which is on the right). Look for a 'Security' tab with a dropdown, then open the 'Users' page.
Once the installation is complete, there are a few more steps to make sure that everything is working correctly.
Verifying the installation
At this point, you can bring up Jenkins and the Dashboard in the browser and verify that they look correct.
Use the SERVER_URL_OR_IP value from the login-info.conf file. Browse to Jenkins:
Jenkins has been set up with a number of jobs which will automate many of the Lingoport Suite tasks. A job called <group>.LicenseExpiration should have been created at install. If your group name was set as Acme, this would be Acme.LicenseExpiration. Select the job and then Build Now to run the job. When the job is complete, select the number under Build History and Console Output. This job will give information about your Lingoport Suite Installation, including all the licensing.
Browse to the Lingoport Dashboard:
https://some.domain.com/. Login at the top right as user admin and password admin. Or the password that was changed. Simply verify that you can log in. There should be no projects at this time.
Set up the Administrator user for Jenkins
Go to your Jenkins URL:
https://some.domain.com/jenkins. You should be able to login without a username.
- At the left side, select Manage Jenkins
- Select Configure Global Security
Under Security Realm, select Jenkins' own user database. Under Authorization, select Matrix-based security. Anonymous users will have Administer checked. Leave this as it is until you create an administration user. At the bottom of the page, select Save. At this point, Jenkins will ask you to create an administrator id. You can use admin for the username, select your own password and Administrator for the name.
Log in to Jenkins as the administrator and select Manage Jenkins and Configure Global Security again. The Administrator user should have an entry in Matrix-based security. Unselect Administer credentials from Anonymous Users. Under Agent --> Master Security, make sure that the box Enable Agent → Master Access Control is checked. Save.
Set up a CLI user for Jenkins
Jenkins CLI is used primarily by the Dashboard and Lingobot, but it should be set up at installation time.
Follow the instructions at Set Up Jenkins CLI User
After completing the setup, the $JENKINS_HOME/lingoport/bin/jenkins_cli_config.sh should have the following values populated:
export JENKINS_USER=jenkins_cli export JENKINS_TOKEN=<a token value> export JENKINS_URL=<JENKINS_URL>
Set up the Lingoport Dashboard to work with Jenkins
The Lingoport Dashboard needs to be configured to work with Jenkins.
Log in as the administrator. At the top of the window, select Administrator, then select the Security tab and Users.
- Select Create User
- The Login will be your group name (Acme). Use this for the Name as well.
- For the password, use <group>:123. For group name Acme, this is Acme:123.
- All other entries are optional
Installation is complete! To work with projects refer to On-Boarding New Projects
Scaling the system
The Lingoport Jenkins jobs can be distributed onto other nodes or agents for processes. This improves performance on the main (master) Jenkins system. The Node Installer sets up the master and agent systems in preparation for the Jenkins configuration. The Node Installer does not have to be installed at the time of Stack Installer. It can be added later as systems and jobs expand.
Updating with the Stack Updater
If the Lingoport Suite is already installed, use the Stack Updater to get to the most current versions.
Note: The Stack Updater requires that the suite has been installed through the Stack Installer previously. If this is not the case, you may be able to run the Stack Installer's 'stack-configurer.sh' to perform most pre-installation steps and then attempt the update. Please note that you may still run into issues if doing so.
Supported operating systems are CentOS 7 and RHEL 7. To see your operating system, try
cat /etc/os-release (most common),
cat /etc/centos-release, or
Disk space requirements are at least 160GB total with at least 60GB free at time of upgrade. If the disk is split into multiple partitions, then this disk requirement applies specifically to the /var partition(The space is mostly used by /var/lib/jenkins and /var/lib/mysql). However, /tmp should also contain at least 10GB as it's used as a temporary holding area by mysql. Finally, the location where the stack updater is placed on the system must have enough space to take a backup of the existing databases, with a minimum requirement of 3G for the updater itself and the database size (which will vary from less than 1G to up to 20GB). It's fine to place the stack updater under '/var' if that's required to meet the space requirements.
To validate, see disk space with the command
sudo df -h. Example:
> sudo df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.6G 0 7.6G 0% /dev tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 7.7G 57M 7.6G 1% /run tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup /dev/nvme0n1p1 162G 7.9G 155G 5% / tmpfs 1.6G 0 1.6G 0% /run/user/1000
See database size with the command
sudo du -h --summarize /var/lib/mysql. Example:
> sudo du -h --summarize /var/lib/mysql 3G /var/lib/mysql
In the above example, there is no '/var' partition, so all content will be placed on the '/' partition (Filesystem: /dev/nvme0n1p1). '/' has 162GB with 155G free which is more than the 60GB required. The database is also 3GB in size, which leaves plenty of room. As long as the stack updater was not placed under /dev or /run there would be no issue (Note: please avoid placing the stack updater under these locations even if they are large enough - as they are meant to contain important system and configuration files).
The stack updater requires an recent version of ansible for compatibility. If updating a system for the first time, then ansible is most likely not installed. You can install it with the './install-ansible-and-collections.sh' script bundled inside the stack updater.
If you have updated before, or if you system comes preconfigured with ansible, then ansible may already be installed, but might be at an old version that is out of date. The ansible version must be at least 2.8. To check the version, run
If ansible is already installed but is out of date, you'll need to update it. Otherwise skip this step and continue to the installation steps. To update to a recent version, first ensure that you are getting ansible from the 'epel' repository via:
sudo yum info ansible. (Look for 'Repo' and 'From repo' in the output). If the 'From repo' or 'Repo' is epel, just run '
sudo yum update ansible', then confirm the version again
ansible --version. If you are not getting ansible from epel, you can setup epel via the
./install-ansible-and-collections.sh script. You must then re-install with epel:
sudo yum remove ansible, then
sudo yum install --disablerepo=<repo previously listed> --enablerepo=epel ansible. If installing directly, you must also manually install the required collections via:
ansible-galaxy collection install -r requirements.yml (don't use sudo unless you will be running the stack installer as root).
Here are the installation steps.
- Get the Stack Updater zip file and put it on the server in the home directory of a user with root (sudo) access.
- Login to the console on the system as the user with root access.
- Unzip the Stack Updater zip file.
> unzip stack_updater_x.y.z.zip
> cd stack-updater
- You will need to install ansible before you can run the installer. You can do so
install-ansible-and-collections.sh. This script will retrieve ansible from the 'epel-release' software repository.
> ansible --version(Should be '2.8' or higher, otherwise see paragraphs above for upgrade steps).
- You will also need to configure some variables. See the files <HOME>/stack-updater/vars/logins.yml
> vi <HOME>/stack-updater/vars/logins.yml
> vi <HOME>/stack-updater/vars/mysql.yml
mysql -u <username> --password='<password>', verify the username/password combinations for the logins.yml and mysql.yml.
- Run ansible-playbook with the file
'./stack-updater.yml'. You must have sudo privileges to run the installer.
- Note: Alternately, if you are the root user but sudo is not enabled for the system, you may try:
ansible-playbook ./stack-updater.yml --become-method=su
- Depending on your system, you may need to enter the MySQL root password interactively as part of the upgrade.
Note:By default, the Lingoport Stack Updater will automatically configure java to be
java-8-openjdk. If using a custom java version, you may disable this by editing
<HOME>/stack-updater/vars/settings.yml. Change the variable `autoupdate_java` to 'no'.
- Make sure Jenkins and Dashboard are up and running with the new versions; Versions are at the bottom of most Web pages
- Run an Automate job from Jenkins and check that the Dashboard project is properly updated
- Update the Jenkins plugins if necessary
- Use the Dashboard extensions/plugins if any are necessary, such as the LDAP one
Manual installation and upgrade
Manual installation is not recommended. If there is a need to install manually, please contact Lingoport (email@example.com) and we can work with you for the best possible outcome.
Lingoport Customer Support
If you experience difficulties during the installation of the Lingoport Suite, please contact firstname.lastname@example.org.