FME Version
Introduction
FME Server requires some preparation before an installation. This article will help with checklists for Offline and Online installations and silent installation options.
Please be advised that these instructions were tested with FME Server 2022 Express installation hosted on Ubuntu 20.04.4 LTS
Manual Online installation
1. Start a bash shell session as the root user.
2. Update the system packages. Example:
apt update && apt upgrade
3. Download and install the dependencies for the FME Server component of the installation. Example:
sudo apt-get install zip unzip
4. Download the FME Server installer package from the FME Downloads webpage using the command wget <FMEServerInstallerPackageLinkAddress>. Example:
wget https://downloads.safe.com/fme/2022/fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run
5. Assign execute permission to the installer package. Example:
sudo chmod +x fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run
6. Run the Installer
./fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run
Manual Offline installation
Following is a list of actions to perform before an offline installation-
1. Start a bash shell session as the root user.
2. Download and install the dependencies for the FME Server component of the installation. Example:
sudo apt-get install <package-name>
3. Install Zip and Unzip
sudo apt-get install zip & unzip
4. Install Pearl
sudo apt-get install perl
5. Postgresql [If your deployment architecture includes the PostgreSQL database server provided with the installation]
sudo apt-get install postgresql
6. Nginx [FME Server 2022 on Linux includes an NGINX reverse proxy that allows easy SSL configuration and the ability to choose ports under 1024 without root permission. HTTPS is configured on the NGINX reverse proxy rather than the web application server.]
sudo apt-get install nginx
7. Download the FME Server installer package from the FME Downloads webpage using the command wget <FMEServerInstallerPackageLinkAddress>.
For Example-
sudo wget https://downloads.safe.com/fme/2022/fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run
8. Assign execute permission to the installer package.
sudo chmod +x fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run
9. Extract all files from the FME Server installer package with flags --noexec and --keep. These flags create a folder “fme-server” in the current directory. This folder will contain the contents of the FME Server installer, including the FME Engine .deb or .rpm package. Example:
sudo ./fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run --noexec --keep
Please note: Listing all FME Engines dependencies can be achieved by running a shell script if preferred.
10. Get dependencies for the FME Engines component of the installation. This is done by running the default Debian package manager to show information about the .deb package found inside the “fme-server” folder mentioned above. Example:
dpkg -I fme-engine-2022_2022.1.0.0.22618~ubuntu.20.04_amd64.deb
The command should provide the third-party dependencies listed under “Depends:”.
11. Download and install all these dependencies one at a time or all at once using
sudo apt install libboost-chrono1.67.0
or
sudo apt install libboost-chrono1.67.0 libboost-filesystem1.67.0 libboost-iostreams1.67.0 …………
12. FME Server installer can now be run on an offline host to complete installation. Example:
./fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run
Listing all FME Engines dependencies using Shell Script
Please see below a sample shell script that can be used to list all the third-party dependency packages for the FME Engines component of the installation.
This script should be saved as a .sh file under the “fme-server” folder, should be provided execute permissions and then run. You will be prompted to provide the .deb file.
Note of caution- Although some testing has been done, this has not been thoroughly tested by our QA team. It is therefore recommended that a customer looking to do this ensures they have tested the reconfiguration in a non-production environment to ensure all aspects of FME Server they require to function do so correctly.
#!/bin/bash #ask user for deb file read -p “Please_enter_the_deb_file:” file sudo apt install postgresql -y 2>> errors.txt sudo apt install nginx -y 2>> errors.txt sudo apt-get install zip unzip -y 2>> errors.txt sudo apt-get install perl -y 2>> errors.txt #getting all package info dpkg -I $file> package.txt #Retrieving data after “Depends:” till end of line awk '/Depends/' package.txt> OnlyDependencies.txt 2>> errors.txt #Removing the word “Depends:” sed 's/Depends://g' OnlyDependencies.txt> RemovedthewordDepends.txt 2>> errors.txt #Splitting each dependency package name to a separate line awk '{for(i=1;i<=NF;i++) if(match($i,",")>0) line=line $i"\n"; else line=line $i; sub("^\n","",line); print line}' RemovedthewordDepends.txt> SplitInSeperateLines.txt 2>> errors.txt #Removed all the commas at the end of the package name sed 's/,//g' SplitInSeperateLines.txt> RemovedCommas.txt 2>> errors.txt #Removed all the additinal info within brackets sed 's/([^()]*)//g' RemovedCommas.txt> RemovedtheContentWithBrackets.txt 2>> errors.txt
Distributed Installations Checklist
Distributed Installation can run the same method online and offline. You, however, have to make sure that you can reach the database and FME Server File Share before installing. You will need to set up the FME Server User and create a mount for the file share. Please see this article on Linux Mounting Options
Silent Installation Parameter Overview
This list provides all the required Parameters for different installations and a few helpful parameters. The documentation provides information on these parameters.
Linux | Required For | Description |
---|---|---|
FMESERVERHOSTNAME | Optional | Host name of the machine that runs the FME Server Core. |
INSTALLDIR | All | The FME Server install directory. |
FMESERVERSHAREDDATA | Optional | The path to the FME Server System Share directory, where FME Server stores Repositories and Resources files. Path names are case-sensitive. |
DATABASETYPE | Distributed Database | The database server type that will be used for the FME Server Database. Possible values are Default, MSSQL, Oracle, PostgreSQL. Default assumes the PostgreSQL database that is included with the FME Server installer and located on the same machine. |
DATABASEHOST | Distributed Database | The host that the database is on. This should only be specified if DATABASETYPE is not Default. |
DATABASEPORT | Distributed Database | The port to connect to the database. This should only be specified if DATABASETYPE is not Default. |
INSTANCENAME | MSSQL Distributed Database | If DATABASETYPE is MSSQL, the SQL Server instance name to use for connecting to the database, instead of DATABASEPORT. |
DATABASECONNECTIONSTRING | Distributed Database / Optional | The JDBC connection string for connecting to the FME Server Database. |
ORACLESID | Oracle Distributed Database | The SID for the Oracle database. Must be specified only if DATABASETYPE is Oracle. |
JDBCDRIVER | Distributed Database / Optional | If your database requires a JDBC driver that Safe does not provide, specify the full path to it here, and it will be copied to the appropriate place in the install directory. |
DATABASEUSER | Distributed Database | The FME Server Database user account name. This property applies regardless of the value specified by DATABASETYPE. WARNING: If DATABASETYPE is Default, do not specify postgres. This name corresponds to the PostgreSQL master user. If the corresponding passwords do not match, the database will not install. |
DATABASEPASSWORD | Distributed Database | The password for the FME Server Database user name. Note: The password for the FME Server Database user account is encrypted in FME Server installation files. |
SERVLETTYPE | Distributed Web Application | The type of Application Server (servlet engine) you will use with FME Server. Possible values are Default, Apache (Tomcat), and Oracle (WebLogic). Default installs the Apache Tomcat servlet provided with the FME Server installer. Note as of FME 2023.1, Oracle WebLogic is no longer available as an application server. |
WEBSERVERHOSTNAME | Distributed Web Application | The host on which the servlet engine is installed. |
SERVLETPORT | Distributed Web Application | The port that the servlet engine host uses or that the built-in Apache server uses. If not specified, the installer checks ports 8080-8085, 80 and uses the first one that is not in use. |
WEBAPPSDIR | Distributed Web Application | If an Apache Tomcat servlet is already installed on the machine, the path to the webapps directory for the servlet engine, for installing WAR files. This is a necessary property for distributed web applications. This is a necessary property for distributed web applications. |
SHAREDTOMCATLIB | Distributed Web Application | If an Apache Tomcat servlet is already installed on the machine, the path to the lib directory for the servlet engine, for installing JAR files. This is a necessary property for distributed web applications. |
FIRSTLOGINCHANGEPASSWORD | Optional | Do not prompt the user to change the SuperUser passoword after first logon. |
NODENAME | Engine Only | If you are installing only the FME Engine component, use this property to advertise a fully-qualified domain name (FQDN) for the machine hosting the FME Engine to FMESERVERHOSTNAME. Specify a FQDN that resolves to the IP address of the machine via DNS. |
PGDATADIR | Optional Express | If DATABASETYPE=Default, the directory to contain the data for the FME Server PostgreSQL database. |
ADMINUSERNAME | Optional | SuperUser Name |
ADMINUSERPASSWORD | Optional | SuperUser Password |
Comments
0 comments
Please sign in to leave a comment.