...
| language | en |
|---|
Mount the Share
The system must have access to the share on acd-store.
Checkout JREST Repository
On acd-store execute the following commands to checkout the repository:
| Code Block |
|---|
su jtel
cd /srv/jtel/shared
git clone https://bitbucket.org/jtelgmbh/jtel-system-java-services.git |
Installation - on Linux Server
To install the REST role on a Linux server, proceed as follows on the acd-rest server.
Java
...
21
Install java
...
21 as follows:
| Info | |||
|---|---|---|---|
If another Java Version is already installed, remove using this: Code Block |
|
| Code Block |
|---|
# Ensure the necessary packages are present:
apt install -y wget apt-transport-https gpg
# Download the Eclipse Adoptium GPG key
wget -qO -/home/jtel
wget https://cdnpackages.jtel.de/downloads/java/openjdk-12.0.2_linux-x64_bin.tar.gz tar xvfz openjdk-12.0.2_linux-x64_bin.tar.gz rm -f openjdk-12.0.2_linux-x64_bin.tar.gz chown -R jtel:jtel jdk-12.0.2 adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
# Configure the Eclipse Adoptium apt repository.
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
# Install temurin
apt update
apt-get install temurin-21-jdk |
jrest
Install jrest as follows:
| Code Block |
|---|
cd /home/jtel
cp -r /home/jtel/shared/jtel-system-java-services/deploy/jrest jrest
mkdir /home/jtel/jrest/log
chown -R jtel:jtel jrest
cp jrest/systemd/jrest.service /etc/systemd/system
chmod +x /home/jtel/jrest/systemd/jrest
systemctl daemon-reload
systemctl enable jrest.service |
Configuration
Edit the configuration file /home/jtel/jrest/config/jtel-jrest.xml and check database access passwords and hosts etc. are correct.
Note: the serverID must be unique on each connector:
| Warning |
|---|
<serverID>2001</serverID> |
Edit the startup file /home/jtel/jrest/systemd/jrest and check the java directory is correct (the correct java version).
Edit the logging configuration file /home/jtel/jrest/config/log4j2.xml and make sure it points to the required logging directory
...
Log Rotation
The following script creates a logrotation configuration to store 14 days of logs, zipping every day:
...
.
...
Firewall
Open the firewall port 8091 as follows:
CentOS:
| Code Block |
|---|
firewall-cmd --zone=public --add-port=8091/tcp --permanent
firewall-cmd --reload |
Debian:
| Code Block |
|---|
ufw allow 8091/tcp |
Debian for systems with only internal access via eth1:
| Code Block |
|---|
ufw allow in on eth1 to any port 8091 proto tcp |
Start Service
Start the service.
| Code Block |
|---|
systemctl start jrest.service |
Installation - on Windows Server
To install the REST role on the windows server, proceed as follows.
Java 12
Download java 12 from here:
https://cdn.jtel.de/downloads/java/openjdk-12.0.2_windows-x64_bin.zip
Unpack this to the following directory:
| Code Block |
|---|
c:\Apps\ |
This should result in the following directory structure being created:
| Code Block |
|---|
C:\Apps\openjdk-12.0.2_windows-x64_bin\jdk-12.0.2\bin |
| Warning |
|---|
Note, if you do not use the paths specified above, you may have to change the configuration considerably. |
Copy Files and Install
On the windows server, execute the following commands in a non-elevated command prompt:
| Code Block |
|---|
c:
md \JRestjrest xcopy /E \\acd-store\shared\jtel-system-java-services\deploy\jrest C:\JRest jrest |
Configuration
Edit the configuration file, and make sure the database access (username and password) is correct:
| Code Block |
|---|
C:\JRestjrest\config\jtel-jrest.xml |
Shortcut
Create a shortcut for start-jrest.cmd and put this into shell:startup
Configure Load-Balancer
It is best to send the requests for the REST API to the load balancer. To make this possible, the following needs to be added to the load balancer configuration.
Frontend http / https
Depending on the protocol used, either http or https may be configured. In the relevant front-end the following should be added:
| Code Block |
|---|
# ADD THIS WHERE THE acls are:
acl rest_req url_reg ^\/rest\/v1.0
# ADD THIS WHERE THE use_backend directives are:
use_backend jtel_rest if rest_req
# ADD THIS AT THE BOTTOM:
#---------------------------------------------------------------------
# this backend provides access to the REST API
#---------------------------------------------------------------------
backend jtel_rest
mode http
compression algo gzip
compression type text/xml text/html text/plain text/css text/javascript
balance leastconn # roundrobin
stick-table type ip size 20k
stick on src
server acd-tel1 acd-tel1:8091 weight 1 cookie jboss1 check inter 1m |
Reload Load-Balancer
Reload the load balancer:
| Code Block |
|---|
systemctl reload haproxy |
Configure Windows Firewall
In an elevated command prompt on the windows server:
| Code Block |
|---|
netsh advfirewall firewall add rule name="JREST" dir=in action=allow protocol=TCP localport=8091 edge=no |
Start REST Server
Start the rest server on the windows machine with the shortcut.
...
| language | fr |
|---|
| Code Block |
|---|
su jtel cd /srv/jtel/shared git clone https://bitbucket.org/jtelgmbh/jtel-system-java-services.git |
| Code Block |
|---|
cd /home/jtel wget https://cdn.jtel.de/downloads/java/openjdk-12.0.2_linux-x64_bin.tar.gz tar xvfz openjdk-12.0.2_linux-x64_bin.tar.gz rm -f openjdk-12.0.2_linux-x64_bin.tar.gz chown -R jtel:jtel jdk-12.0.2 |
| Code Block |
|---|
cd /home/jtel cp -r /home/jtel/shared/jtel-system-java-services/deploy/jrest jrest mkdir /home/jtel/jrest/log chown -R jtel:jtel jrest cp jrest/systemd/jrest.service /etc/systemd/system chmod +x /home/jtel/jrest/systemd/jrest systemctl daemon-reload systemctl enable jrest.service |
| Code Block |
|---|
cat << EOFF > /etc/logrotate.d/jrest /home/jtel/jrest/log/jtel-rest.log { rotate 14 daily missingok notifempty compress dateext dateformat %Y-%m-%d. create 644 jtel jtel } EOFF |
| Code Block |
|---|
firewall-cmd --zone=public --add-port=8091/tcp --permanent firewall-cmd --reload |
| Code Block |
|---|
systemctl start jrest.service |
| Code Block |
|---|
c:\Apps\ |
| Code Block |
|---|
C:\Apps\openjdk-12.0.2_windows-x64_bin\jdk-12.0.2\bin |
...
| Code Block |
|---|
c: md \JRest xcopy /E \\acd-store\shared\jtel-system-java-services\deploy\jrest C:\JRest |
| Code Block |
|---|
C:\JRest\config\jtel-jrest.xml |
| Code Block |
|---|
# ADD THIS WHERE THE acls are: acl rest_req url_reg ^\/rest\/v1.0 # ADD THIS WHERE THE use_backend directives are: use_backend jtel_rest if rest_req # ADD THIS AT THE BOTTOM: #--------------------------------------------------------------------- # this backend provides access to the REST API #--------------------------------------------------------------------- backend jtel_rest mode http compression algo gzip compression type text/xml text/html text/plain text/css text/javascript balance leastconn # roundrobin stick-table type ip size 20k stick on src server acd-tel1 acd-tel1:8091 weight 1 cookie jboss1 check inter 1m |
| Code Block |
|---|
systemctl reload haproxy |
...