ServiceMobility 3.14.0 Installation
This document describes the process of installing ServiceMobility on a new, clean, system.
Setup Notes
Prior to installing ServiceMobility please ensure that all prerequisites have been met.
- See: ServiceMobility Hardware and Software Requirements document
If installing on a Linux OS, you must be logged in as the user that the background services will eventually be running under. This ensures that files created during the setup process will have the correct permissions when running as a background service.
It is important to make sure the Java JDK and not just the standard JRE is installed.
You can verify the JDK is installed by running the following command:
javac -version
The Java version must be 1.8.0_45 or later.
Extract the ServiceMobility zip file contents
Linux Zip Extract Instructions
It is assumed that you are logged into the system as the user which the background services will be running as.
Unzip ServiceMobility.zip contents into home directory of the user that background service will be running as
cd ~ unzip ServiceMobility.zip
Microsoft Windows Zip Extract Instructions
Notes
- There is an issue with the default Microsoft Windows unzip not supporting long directory trees in zip files. Therefore, you must use the 7z.exe unzip utility that has been provided with the ServiceMobility distribution.
- It is recommended that ServiceMobility be installed on separate drive from the OS. Therefore this guide assumes that ServiceMobility will be installed on D:
Unzip ServiceMobility
D: cd \ tools\7z x ServiceMobility.zip
Create ServiceMobility Database
- Create a new SQL Server database named
ServiceMobility
- Create a SQL logon used to access the ServiceMobility database
- This logon information will be required later in the setup process
- Execute the following scripts on the ServiceMobility database
sql/ServiceMobility-SoR.sql
to create the initial database structuresql/SeedData.sql
to initialize the database with default valuessql/SeedData-Templates.sql
to initialize the databases default templates
Create an Entity in the ServiceMobility Database
- Edit
sql/USA.sql
file and update the@EntityName
variable with the desired entity name. Spaces are not allowed. - Execute the
sql/USA.sql
script on theServiceMobility
database to create the new entity - This new entity will have default logon of
admin@EntityName
(where EntityName is the value entered in step 1) with a default password ofPassword1
!
Execute the Setup Script
The setup script will assists with collecting specific parameters and updating the appropriate configuration files. The setup script can be executed multiple times to change any setting at a later time.
- Start the setup script
Linux
cd ~/ServiceMobility node/linux64/bin/node middlewares/up_auth/bin/setup.js
Windows
D: cd \ServiceMobility node/win64/node middlewares/up_auth/bin/setup.js
Once started, the script will first verify required directory and files exist
- If any errors are reported
- Verify the ServiceMobility zip was extracted to the proper (specified) location
- Verify you are running the setup script from the proper directory
- Verify the currently logged user has access to the reported directory or file
- If any errors are reported
- Enter SQL Server properties
- After entering all of the properties the script will verify connectivity to SQL Server
- If the Script reports an Invalid Logon
- Validate the ServiceMobility database has been created
- Validate the entered credentials have proper access to the ServiceMobility database
- Validate firewall settings to ensure the server has access to SQL Server over the entered port
- If the setup script reports an ETIMEOUT error
- Validate the entered Server name
- Try and ping the server
- Validate the port number
- Try and telnet to the server with the specified port
- Validate firewall settings to ensure the server has access to SQL Server over the entered port
- Validate the entered Server name
- If any error is reported you will have to option to re-enter the SQL Server properties or continue
- After entering all of the properties the script will verify connectivity to SQL Server
Enter SMTP Settings (optional but recommended)
- ServiceMobility uses email to send alerts to administrators when there is a system error, sending Customer's PDF invoices, password reset notifications, etc.
- Amazon S3 Settings
- Amazon S3 settings must be specified if you are planning to use the ServiceMobility photo capture functionality
- Amazon S3 settings must be specified if you are planning to use the ServiceMobility photo capture functionality
- ActiveMQ Settings
- For larger systems ActiveMQ and ESB can be installed on different servers. This setting identifies where the ActiveMQ server is located.
- ServiceScheduling Settings
- If ServiceMobility is integrated with ServiceScheduling then these settings are required.
- Linux only - Enter the user the ServiceMobility service should be run as.
After all of the properties have been entered the script will:
- Save a copy of the entered settings in
ServiceMobility-opts.json
- Update all of the appropriate configuration files
- Exit
Configure JBoss Fuse ESB
Start ESB Karaf Console
cd ~/ServiceMobility/jboss-fuse/bin karaf
Execute the following Karaf console commands
karaf@root> features:install wrapper karaf@root> wrapper:install -s AUTO_START -n KARAF -d Karaf -D "Karaf Service" karaf@root> features:uninstall mq-fabric karaf@root> shutdown
- The shutdown process make a minute or two - be patient.
- The shutdown process make a minute or two - be patient.
- Update the ESB Karaf configuration file
Edit ~/ServiceMobility/jboss-fuse/etc/KARAF-wrapper.conf
nano ~/ServiceMobility/jboss-fuse/etc/KARAF-wrapper.conf
Locate the
wrapper.java.maxmemory
settings and set it to2048
# Maximum Java Heap Size (in MB) wrapper.java.maxmemory=2048
Install ESB as a Service
The following section provides instructions on how to install the JBoss FUSE ESB as a service on either Linux or Microsoft Windows.
Linux Specific Instructions
- Edit
~/ServiceMobility/jboss-fuse/bin/Karaf-service
- Locate the
RUN_AS_USER
parameter and set it to the user the service should be run as Execute the following shell commands
cd ~/ServiceMobility/jboss-fuse/bin sudo ln -s $PWD/KARAF-service /etc/init.d/KARAF-service sudo chkconfig KARAF-service --add sudo chkconfig KARAF-service on
Start the ESB Service
service KARAF-service start
Stopping the ESB Service ( do not execute at this time)
service KARAF-service stop
Microsoft Windows Specific Instructions
Execute the following command line statements
D: cd \ServiceMobility\jboss-fuse\bin KARAF-service.bat install net start "KARAF"
Install ActiveMQ as a Service
Linux Specific Instructions
Execute the following commands
cd ~/ServiceMobility/jboss-a-mq/bin sudo ln -s $PWD/env /etc/default/activemq sudo ln -s $PWD/activemq /etc/init.d/activemq sudo chkconfig --add activemq sudo chkconfig activemq on
Start the ActiveMQ service
service activemq start
Stopping the ActiveMQ Service can be accomplished with the following command ( do not run it at this time).
service activemq stop
Startup settings, including memory options are configured in /etc/default/activemq
Microsoft Windows Specific Instructions
Install ActiveMQ as a Windows Service
D: cd \ServiceMobility\jboss-a-mq\bin\win64 InstallService.bat install
Start the ActiveMQ Service
net start "activemq"
The ActiveMQ Service can be stopped with the following command ( do not run it at this time)
net stop "activemq"
Linux Only - Configure Local TCP Forwarding Rules
For security reasons, Linux servers restrict binding to TCP ports below 1024 to services running as the root user. Running services as root it not a recommended practice. Therefore, to get around what appears to be a catch-22 problem is to simply create local port forwarding rules.
Node.js is expecting HTTP traffic on internal TCP port 3001 and secure HTTPS traffic on internal TCP port 3000. The following steps will guide you through setting up the TCP port forwarding rules.
Edit
/etc/rc.local
sudo nano /etc/rc.local
Add the following lines to the end of the file
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3000 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3001
- Save
Install Node.js as a Service
Linux Specific Instructions
Execute the following shell commands
cd ~/ServiceMobility/middlewares/up_auth bin/installService.sh
Add the following to /etc/init/env.conf file
# /etc/init/env.conf env NODE_ENV=production
Microsoft Windows Specific Instructions
Execute the following command line statements
D: cd \ServiceMobility\middlewares\up_auth bin\installService.bat
Add the following global environment variable
NODE_ENV=production
Verify Installation
In the URLs below, replace ${HOST}
with the host name or IP address of the server that was just configured.
The ServiceMobility mobile application is accessed from the following URL
https://${HOST}/mobility/index.htm
The ServiceMobility Management Application is accessed from the following URL
https://${HOST}/nexus/index.html
The ServiceMobility REST APIs are accessed from the following URL
https://${HOST}/seiapi/v3/...
Related Articles