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:
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 12
Install java 12 as follows:
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
jrest
Install jrest as follows:
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.
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:
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
Firewall
Open the firewall port 8091 as follows:
firewall-cmd --zone=public --add-port=8091/tcp --permanent firewall-cmd --reload
Start Service
Start the service.
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:
c:\Apps\
This should result in the following directory structure being created:
C:\Apps\openjdk-12.0.2_windows-x64_bin\jdk-12.0.2\bin
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:
c: md \JRest xcopy /E \\acd-store\shared\jtel-system-java-services\deploy\jrest C:\JRest
Configuration
Edit the configuration file, and make sure the database access (username and password) is correct:
C:\JRest\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:
# 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:
systemctl reload haproxy
Configure Windows Firewall
In an elevated command prompt on the windows server:
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.