Integration Engine Solutions to Connect Anything to Anything

Log out?

eiConsole v.24R1
Documentation

eiPlatform

Installation Guide – Linux

Step 1: Installing OpenJDK Java 17

Install the JDK by first updating the package manager cache by running the following commands:

sudo apt update
sudo apt upgrade
sudo apt install openjdk-17-jdk
java -version

You should see the following output:


Step 2: Download and Install Apache Tomcat 10

For security purposes, Tomcat should run under a separate, unprivileged user. Run the following command to create a user called tomcat:

sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat

By supplying /bin/false as the user’s default shell, you ensure that it’s not possible to log in as tomcat.

To install Tomcat, you’ll need the latest Core Linux build for Tomcat 10, which you can get from the downloads page.

Select the latest Core Linux build, ending in .tar.gz

Copy the downloaded file to the /tmp directory.

Navigate to the /tmp directory:

cd /tmp

Then, extract the archive you downloaded by running:

sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1

Since you have already created a user, you can now grant Tomcat ownership over the extracted installation by running:

sudo chown -R tomcat:tomcat /opt/tomcat/
sudo chmod -R u+x /opt/tomcat/bin

Configuring Admin Users

To gain access to the Manager and Host Manager pages, you’ll define privileged users in Tomcat’s configuration. You will need to remove the IP address restrictions, which disallows all external IP addresses from accessing those pages.

Tomcat users are defined in /opt/tomcat/conf/tomcat-users.xml. Open the following file for editing…

/opt/tomcat/conf/tomcat-users.xml

… and add the following lines before the ending tag:

<role rolename="manager-gui" />
<user username="manager" password="manager_password" roles="manager-gui" />
<role rolename="admin-gui" />
<user username="admin" password="admin_password" roles="manager-gui,admin-gui" />

Replace the manager_password and admin_password passwords with your own. When you’re done, save and close the file.

Here you define two user roles, manager-gui and admin-gui, which allow access to Manager and Host Manager pages, respectively. You also define two users, manager and admin, with relevant roles.

By default, Tomcat is configured to restrict access to the admin pages, unless the connection comes from the server itself. To access those pages with the users you just defined, you will need to edit config files for those pages. It is not recommended to do this as it may provide a security risk.

To remove the restriction for the Manager page, open the following two config files for editing:

/opt/tomcat/webapps/manager/META-INF/context.xml
/opt/tomcat/webapps/host-manager/META-INF/context.xml

Comment out the following in each file:

<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

Creating a System Service

The systemd service that you will now create will keep Tomcat quietly running in the background. The systemd service will also restart Tomcat automatically in case of an error or failure.

Tomcat, being a Java application itself, requires the Java runtime to be present, which you installed with the JDK in step 1. Before you create the service, you need to know where Java is located. You can look that up by running the following command:

sudo update-java-alternatives -l

The output will be similar to this:

/usr/lib/jvm/java-1.17.0-openjdk-arm64

Note the path where Java resides, listed in the last column. You’ll need the path momentarily to define the service.

You’ll store the tomcat service in a file named tomcat.service, under /etc/systemd/system. Create the file for editing using the following commands

touch /etc/systemd/system/tomcat.service
sudo gedit /etc/systemd/system/tomcat.service

Paste the following contents into the file:

[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
UMask=0222
Environment="JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-arm64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

When you’re done, save and close the file.

Reload the systemd daemon so that it becomes aware of the new service:

sudo systemctl daemon-reload

You can then start the Tomcat service by typing:

systemctl start tomcat

Then, look at its status to confirm that it started successfully:

systemctl status tomcat

You should see something like this:

To enable Tomcat to start up with the system, run the following command:

sudo systemctl enable tomcat

Now that the Tomcat service is running, you can configure the firewall to allow connections to Tomcat. Then, you will be able to access its web Interface.

Tomcat uses port 8080 to accept HTTP requests.

Determine the IP of the server and access the Tomcat Console with:

http://<serverIP>:8080/

Step 3: Deployment of the eiPlatform WAR into Tomcat

This is a unique website which will require a more modern browser to work! Please upgrade today!