Introduction
This document describes installation process of AutomationEdge (henceforth called AE) server. It describes the pre-requisites and the detailed steps for installing or upgrading AE.
The target audience must have at least basic IT and operating system knowledge.
The minimum system configurations required to deploy AutomationEdge (AE) are shown in the table below.
Operating System |
Windows Server 2008, 2012, 2016; Windows 10 (64 bit); Linux 64 bit |
RAM |
8 GB |
Hard disk |
200 GB |
No. of Virtual CPUs |
4 |
Before deploying AE, the following software/tools need to be installed and configured.
|
Tool |
Version |
Download URL |
|
1 |
Java Runtime Environment (JRE 64 bit) |
For AE releases 6.0.0 onwards, Adopt JDK's HotSpot version 11.0.9. |
||
2 |
Database |
PostgreSQL |
11.8 (or 9.5.* - latest update) |
|
Oracle |
12c,18c,19c |
|
||
Microsoft SQL Server |
2012, 2014, 2016 |
|
||
3 |
Apache Tomcat for 64 bit |
Tomcat 9 version 9.0.35 or later |
||
4 |
Apache ActiveMQ |
5.15.13 |
The minimum system configuration required to deploy AE Agent is shown in the table below:
Operating System |
Windows 10 (64 bit); Linux 64 bit |
RAM |
4 GB |
Hard disk |
200 GB |
No. of Virtual CPUs |
2 |
The actual configuration required may vary depending upon the nature of workflows and
volume of data the Agent is expected to handle
The following browser versions are supported in Release 6.1.0
Browser Support |
Chrome |
Firefox |
IE |
Release 6.1.0 |
57.0 and above |
52.0 and above |
11 |
Read this section for fresh AutomationEdge deployments. If you have an existing AutomationEdge setup and wish to migrate to the current release directly go to section
Migrating from Older Releases.
Windows:
Create the following directories on the machine:
This is the top-level directory of AutomationEdge installation also known as AutomationEdge Base Directory. This is a directory in which all AutomationEdge software and components are installed.
Hence forth, the complete file path of AutomationEdge Home is referred to as <AE home>.
AutomationEdge home is a working directory for the AutomationEdge server.
Linux:
Similarly, you may set up the above directory structure in Linux environment.
Windows:
E:\AutomationEdge\aehome.
Linux:
AE_HOME=”<path for the AE working directory>”
Read this section for fresh AutomationEdge deployments. If you have an existing AutomationEdge setup and wish to migrate to the current release directly go to section
Migrating from Older Releases.
For installation on Red Hat Enterprise Linux (RHEL) based Linux distributions refer to
Appendix 2: AE Installation on CentOS
For installation on Debian based Linux distributions refer to Appendix 3: AE Installation on Ubuntu
Setup Adopt JDK's HotSpot version 11.0.9 as follows,
After you have installed Java, you must set the JRE_HOME environment variable to point to the JRE installation directory as follows,
Under System Variables, select Path system variable and click Edit.
Scroll to the beginning of the Variable value and insert %JRE_HOME%/bin;
To verify, execute the following command on the new command prompt:
(Check if the command prints the expected version of the installed Java)
openjdk version "11.0.9" 2020-10-20
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
Double click on postgresql-9.5.4_xx-windows-x64.exe to start PostgreSQL installation setup wizard and follow the instructions.
Password: Provide a password for the database superuser: ‘postgres’
Port: Keep the default port 5432 and click next
Advanced Options: Keep default locale and click next
Once the database installation is completed, it will be installed as a Service named postgresql-x64-9.5
Database Creation
Create a blank database vae for AutomationEdge on Postgresql server using any one of the following methods,
Create database using pgAdmin tool:
Following are the steps to create a database vae using pgAdmin tool,
Create database using psql shell:
create database vae;
If prompted for Password, please provide password for Database User.
|
Allowing Remote Connections (Optional)
If AE server and PostgreSQL database are installed on two different machines then you need to enable remote connections to the database. In order to do that, edit pg_hba.conf file located under <POSTGRES_HOME>/data directory.
# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 0.0.0.0/0 md5 host all all 127.0.0.1/32 md5 host postgres postgres <IP or Host of AE Server>/32 md5 host vae postgres <IP or Host of AE Server>/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. |
# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 0.0.0.0/0 md5 host all all 127.0.0.1/32 md5 host postgres postgres <IP or Host of AE Server>/32 md5 host vae postgres <IP or Host of AE Server>/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. |
Prerequisite: Oracle Database is already installed.
Create a user vae for AutomationEdge as follows.
CREATE USER username IDENTIFIED BY password;
GRANT CREATE SESSION TO username;
GRANT CREATE SEQUENCE TO username;
GRANT CREATE VIEW TO username;
GRANT QUERY REWRITE TO username;
GRANT CONNECT, RESOURCE TO username;
GRANT CREATE OPERATOR TO username;
GRANT CREATE PROCEDURE TO username;
GRANT CREATE SEQUENCE TO username;
GRANT CREATE TABLE TO username;
GRANT CREATE TRIGGER TO username;
GRANT CREATE TYPE TO username;
GRANT CREATE DATABASE LINK TO username;
ALTER USER username quota 100M on USERS;
Prerequisite: MSSQL Server is already installed.
In case of MSSQL 2012 or MSSQL 2014 Servers below service packs are required.
Link to download the Service Packs,
Create a database vae in MSSQL Server.
Following are the steps to enable remote connectivity to the database.
- Open MSSQL Server Configuration Manager Console.
- Expand the MSSQL-Server Network Configuration item in the tree on the left side.
- Select Protocols for SQLEXPRESS
- On the right hand there is a TCP/IP entry.
- Double click on the TCP/IP entry.
- On the tab for Protocols, set Enabled to Yes.
- Click on the tab for the IP addresses.
- Scroll down to the IPAll configuration
- Keep the configuration of TCP Dynamic Ports as empty
- Provide the correct port number for the TCP Port
- Apply the changes and restart MSSQL Service.
Following changes need to be done to support Windows Authentication for MSSQL Server with AutomationEdge.
jdbc:sqlserver://host:port;DatabaseName=dbName;integratedSecurity=true
https://www.microsoft.com/en-us/download/details.aspx?id=55539
After following these steps, if AE application is still not able to connect to MS SQL Server using windows authentication then check and verify that tomcat service is referring to correct JAVA_HOME where you have put sqljdbc_auth.dll. This can be found out from a log file TOMCAT_HOME\logs\catalina.<date>.log.
INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jre1.8.0_101
Make sure you have put the sqljdbc_auth.dll in the bin folder under the path shown in a log file TOMCAT_HOME\logs\catalina.<date>.log. As per the log statement shown here, dll file should be put at C:\Program Files\Java\jre1.8.0_101\bin
Following are the steps to install Apache Tomcat.
Hence forth, the complete file path of Tomcat Home is referred to as <Tomcat home>.
For example, in the screenshot below,
<preferred_drive>:\AutomationEdge\tools\apache-tomcat-<9.x> is <Tomcat home>.
service.bat install
Replace \ by / in all of the above commands or locations if you are using Linux based OS
|
The Tomcat installation package provides a few out of the box apps like ROOT, manager, docs and so on. Before deploying AE apps, user must delete these apps.
To delete these apps:
To hide tomcat server name and version details, follow the steps mentioned below and restart the tomcat server once done:
Keep the value for this property blank. (e.g., server.info=)
Location of server.xml: <Tomcat home>/conf/server.xml
|
server= “AutomationEdge" as shown in the image below.
It is recommended to use a separate account that has lowered permissions. This will protect other services running on the machine in case of any security breach. Create a user for the Tomcat Web Server.
Linux - Change the ownership of the <Tomcat home> directory to the newly created user.
Windows - From the Service Manager, change the Tomcat Service properties to use another Logon Account.
When running tomcat as service, change the memory settings as per the following steps,
* You may have to increase the allocated memory to higher values depending upon the load on the AE server
(For example if a machine has 8 GB RAM set
Figure: Java Memory pool settings for Tomcat
For command line and Linux based systems, please follow these steps,
Note: You may have to increase the allocated memory to higher values depending upon the load on the AE server
If you already have Apache ActiveMQ installed update it to version 5.15.8 else install afresh.
Following are the steps to install ActiveMQ
InstallService.bat
Location of activemq.xml: <ActiveMQ home>/conf/activemq.xml
|
In case you prefer to store messages in a database rather than the default file storage you need to configure ActiveMQ to enable JDBC connectivity.
Following are the steps to configure ActiveMQ for JDBC connectivity,
<!-- Postgres DataSource Sample Setup --> <!-- <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource"> <property name="serverName" value="localhost"/> <property name="databaseName" value="activemq"/> <property name="portNumber" value="0"/> <property name="user" value="activemq"/> <property name="password" value="${dbuser.password}"/> <property name="dataSourceName" value="postgres"/> <property name="initialConnections" value="1"/> <property name="maxConnections" value="10"/> </bean> --> <!-- Oracle DataSource Sample Setup --> <!-- <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:AMQDB"/> <property name="username" value="scott"/> <property name="password" value="Put User password here"/> <property name="poolPreparedStatements" value="true"/> </bean> --> <!-- MSSQL DataSource Sample Setup --> <bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"> <property name="algorithm" value="PBEWithMD5AndDES" /> <property name="passwordEnvName" value="ACTIVEMQ_ENCRYPTION_PASSWORD"/> </bean> <bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"> <property name="config" ref="environmentVariablesConfiguration" /> </bean> <bean id="propertyConfigurer" class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer"> <constructor-arg ref="configurationEncryptor" /> <property name="location" value="file:${activemq.conf}/credentials-enc.properties"/> </bean> <bean id="mssql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=activemq"/> <property name="username" value="sa"/> <property name="password" value="PUT sa Password here"/> <property name="poolPreparedStatements"> <value>true</value> </property> </bean> |
Please verify the correctness of your copied text (e.g. hyphen & quotes)
|
$ bin/activemq encrypt --password activemq --input mypassword
Where the password you want to encrypt is passed with the input argument, the password argument is a secret used by the encryption.
Encrypted password: K6lz7RKJg9DzGiX8eRbvUw==
<ACTIVEMQ_HOME>/conf/credentials-enc.properties
dbuser.password=ENC(K6lz7RKJg9DzGiX8eRbvUw==)
$cd /etc/profile.d/
$sudo touch automationedge.sh
Export ACTIVEMQ_ENCRYPTION_PASSWORD=activemq
For PostgreSQL |
<persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="activemq-data" dataSource="#postgres-ds"/> </persistenceAdapter> |
For MSSQL |
<persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#mssql-ds" createTablesOnStartup="true" lockKeepAlivePeriod="5000"> <adapter><transact-jdbc-adapter/></adapter> <locker> <lease-database-locker leaseHolderId="XXXXXXX" lockAcquireSleepInterval="10000"/> </locker> </jdbcPersistenceAdapter> </persistenceAdapter> |
For Oracle |
<persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="activemq-data" dataSource="#oracle-ds"/> </persistenceAdapter> |
It can be done from "Administrator" command line by executing the following command
sc config [service name] depend= <Dependencies(separated by / (forward slash))>
e.g.
sc config ActiveMQ depend= Postgres9.5
Add producerFlowControl="true" memoryLimit="500mb" maxPageSize="1000" property for policyEntry queue=">" tag
To enable this feature in Workflow configuration UI, some configuration changes are be required in ActiveMQ configuration. To enable priority following changes need to be done in activemq.xml present in activemq's conf folder.
Add prioritizedMessages="true" property for policyEntry queue=">" tag
Add the following to activemq.xml for the above two properties.
<destinationPolicy> <policyMap> <policyEntries> <policyEntry topic=">" > <!-- The constantPendingMessageLimitStrategy is used to prevent slow topic consumers to block producers and affect other consumers by limiting the number of messages that are retained for more information, see: http://activemq.apache.org/slow-consumer-handling.html --> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry> <policyEntry queue=">"prioritizedMessages=”true” producerFlowControl="true" memoryLimit="500mb" maxPageSize="1000"/> </policyEntries> </policyMap> </destinationPolicy> |
Activemq and AutomationEdge Server needs to be restarted after this change
Change the Startup Type to Automatic for the following services and start them if not started:
For example: Apache Tomcat 9.0.0.M8 Tomcat9
For example: postgresql-x64-9.5 - PostgreSQL Server 9.5
Stop tomcat server.
Copy war files listed below at <Tomcat home>/webapps
Integration Services (optional): In case of integration of AE with any external system (e.g. Remedyforce etc), additionally copy the war file named aeintegrationservice.war at location <Tomcat home>/webapps. Additionally, perform Integration Services Setup described in the section below.
Restart Tomcat Service so that war files gets extracted in <Tomcat home>/webapps directory.
|
Once the applications are deployed with the default settings, a directory named /conf is created under <AE home>. It has two files:
If authentication is enabled for ActiveMQ then provide mq.username and mq.password, else keep it blank. Note: Plain text password will be encrypted by AE.
mq.username=
mq.password=
ae.sessiontoken.autoRenewalInHours is used to set the maximum session token validity in hours. For example, if value is set to 5 then session token expires after 5 hours in spite of continuous user activities.
The default is ae.sessiontoken.autoRenewalInHours=-1 which means there is no expiry.
ae.banned.file.extension contains the Comma separated list of file extensions to be restricted from upload
ae.pendingreq.lower.threshold = 300
If Agent is down, requests go in New State but if number of pending requests goes above this lower threshold then an email notification is sent to the Users. Requests can continue to be submitted even if lower threshold is crossed.
However, this feature is active only if ‘Pending Requests’ feature is active under SettingsEmail Notification menu and users have been specified for sending email notification.
ae.pendingreq.higher.threshold = 800
If Agent is down, requests go in New State but if number of pending requests goes above this higher threshold then more requests can be submitted.
AutomationEdge users can login concurrently and have multiple active sessions by default. However, this default behavior is configurable and can be altered with ae.concurrentlogin.configuration property. The possible values for this property are as follows,
This is the default value of property. With this value, a user can login concurrently and can have multiple active sessions at the same time.
If this value is used, then second login is not allowed if a session is already in progress. If user’s session is active and he tries to login again then error message will be shown to user.
With this value, if user already has active session and tries to login again then his old active session will be logged out. His new login will be successful and new session will be created.
In addition to being visible on AE UI, archived CSV files are stored as zipped csv files in the default location, AE Home\Archives. However, the default purging destination is configurable. It can be set in AE_Home/conf/ae.properties by setting the following configuration parameter,
ae.archive.location = <Desired filepath(e.g D:/testPurge/Archives)>
Enable sysadmin forget password feature by setting this to true.
ae.clusters.members=localhost
ae.clusters.port=5900
In case of HA, set following properties
Value of 'ae.clusters.members' should be comma separated list of host/IP addresses of nodes in the HA cluster
For example, if there are 3 nodes in HA then property values would be like
ae.clusters.members=10.41.4.1, 10.41.4.2, 10.41.4.3
ae.clusters.port=5900
Cleanup job frequency in minutes for Requests in New state.
Default value is 30 minutes. Min value can be 15 minutes and Max value can be 60 minutes.
ae.new.request.cleanup.job.interval.minutes=30
ae.jms.completed.queue.receive.limit= 10
This property is related to Integration Service. It is to specify number of messages to dequeue at a time from JMS Completed Queue
ae.jms.completed.queue.expire.period.days=7
It is the property to specify expiry of messages from JMS Completed Queue. Messages will be deleted from JMS queue, so that queue does not grow infinitely. Default value is 7 days.
ae.archive.location=
Specify the complete file path of purged records
The following property is set while initializing Scheduler.
ae.scheduler.threadpool.size = 20 (Allowed range 10-100)
This property indicates in an AE Scheduler Thread Pool size (i.e. thread count in the Thread Pool). The default value can be increased to accommodate higher number of Scheduled Requests at one instance of time.
ae.mail.smtp.timeout.seconds = 30
This property specifies Java Mail SMTP timeout value in seconds. Default is 30 seconds.
ae.mail.smtp.connectiontimeout.seconds = 30
This property specifies Java Mail SMTP connection timeout value in seconds. Default is 30 seconds.
Set the following properties with appropriate values as per the database installed.
database.username=postgres
database.password=<Password for postgres user set during PostgreSQL installation, refer to 7.2.1>
database.username=vae
database.password=<Password for vae user set during Oracle User creation, refer to 0>
database.type=MSSQLSERVER
database.url=jdbc:sqlserver://localhost:1433;databaseName=vae;
database.username=sa
database.password==<Password for vae user set during MSSQL User creation, refer to 0>
AutomationEdge UI settings are done in the <Tomcat home>/webapps/aeui/ aeui-config.properties filepath.
By default, after AE installation aeui-config.properties file is in plain text format.
For changing UI settings in the plain text, you may go to
<Tomcat home>/webapps/aeui and edit the file aeui-config.properties. The following properties may be set,
If you wish to store aeui-config.properties in encrypted format you may go to the following URL http://<AE server host>:8080/aeui/#/editconfigfile. Set the desired AEUI properties and download encrypted file as shown in the screenshot below. You may now replace the plain text file with the encrypted file.
Please Restart Tomcat service once all the properties are set and verified as per your environment.
username: sysadmin
password: vY78_h$ia
Perform AutomationEdge Post Installation tasks with System Administrator and Tenant Administrator. Refer the following,
For Getting Started with Process Studio refer the following guides,
Integration Services was introduced in R5.4.0.
Following, are the setups for Generic Integration Services,
Refer, Settings Proxy menu in AutomationEdge_User_Guide_R6.1.0 for more details
As a part of startup,
In this section we will discuss migration of AutomationEdge from previous releases to the current release.
Follow instructions in this section if you already have AutomationEdge, and want to migrate to the latest version. If it’s a fresh installation of AE, follow the section – Installation.
Migration in covered in the following three sections,
10.2 Pre-Migration Activities
10.3 AutomationEdge Server Migration
10.4 Post Migration Steps
Following is a tabular display of the Migration scenarios and overall migration steps. You may use this table as a quick reference.
Scenarios for Agent Migration: |
||
No. |
Migration Scenario |
Migration Steps |
A. |
Migrating from Releases prior to 5.4 |
|
B. |
Migrating from Release 5.4 and above – with "Include JRE with Agent" enabled |
|
C. |
Migrating from Release 5.4 and above - with "Include JRE with Agent" disabled |
|
Following are the pre-migration steps and setups for migration to AutomationEdge Release 6.1.0.
Following are the pre-migration activities for Agents,
It is recommended to follow the first approach above. The bundled JRE in Agent is automatically upgraded from JRE binaries on AE server in future upgrades as well.
When the System Migrates to 6.1.0, Agents will automatically upgrade and also migrate to JRE11 supplied by AE.
Tomcat Services need to be either recreated or reconfigured after migration to JRE 11 version.
Following are the steps to reconfigure Tomcat.
(War Files Deployment)
Backups
Delete files
Copy Files
Start Tomcat
Update Files
Restart Tomcat
Security Hardening
Agent post migration steps are required only if the steps in 10.2.2 Pre-Migration activities for Agents were not performed. You may also refer the steps below in case of Agent up-gradation failure.
Follow one of the two options discussed below preferably Option 1.
(This option is for migrations from R5.4.0 and above)
Settings in AE UI if "Include JRE with Agent" is not enabled
(This option is required for releases prior to 5.4.
This option can also be used for releases 5.4 and above if desired but option 1 is preferable).
If "Include JRE with Agent" is disabled before and even after AE Server migration, then Agent can use System JRE.
Perform the following options,
Check agent.upgrade.status. If the value is other than Successful, Change the value to Successful
Workaround:
Plugins distribution contains the following zip files
In the list above PS-plugins-2.0.zip contains several jars including,
For PS-plugins.zip you might get errors while uploading. There are two possible workarounds as follows. You may follow any one of these.
For upgrades from 4.0.1.4 to 6.1.0 - Any exported AutomationEdge workflows from the migrated 6.1.0., instance cannot be imported to other AE instances (e.g. Development to UAT and Production) if workflow was created in 4.0.1.4. Such a migrated workflow needs to be opened in Process Studio and created in other instances with the Publish option.
We ship JDBC jars for all three databases we support i.e., PostgreSQL, Oracle and MSSQL Server with application.
Info |
Description |
Probable Value |
First and Last Name |
The fully-qualified domain name, or URL you want to use |
t3.automationedge.com |
Organizational Unit |
Optional |
t3.automationedge.com |
Organization |
The full legal name of your organization |
AutomationEdge Technologies Pvt. Ltd. |
City/Locality |
|
Pune |
State/Province |
|
Maharashtra |
Country Code |
two-letter code of your country |
IN |
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" keyAlias=”<value provided in the alias argument of keytool command(in this sample aeserver)>” scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/<path_to_file>/”<value provided in the keystore argument of keytool command (in this case aeserver.jks)>" keystorePass="password" /> |
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" alias="aeserver" keyAlias="tomcat" keystoreFile="path_to_keystore_file" keystorePass="keystore_file_password" connectionTimeout="20000" maxThreads="250" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" sslEnabledProtocols="TLSv1.2" clientAuth="false" useServerCipherSuitesOrder="true" ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_EMPTY_RENEGOTIATION_INFO_SCSVF" /> |
Note:
When you request a TLS certificate, you must provide a Certificate Signing Request (CSR) from your tomcat server. Command keytool –genkey puts a private and public key in the keystore file you specify. The CSR will include your public key.
keytool -certreq -keyalg RSA -alias aeserver -file csr_aeserver.csr keystore aeserver.jks
Once CSR is shared the certificate is issued by a CA, get the Root and Intermediate certificates of your CA and place them in the same folder where you have keystore file i.e. aeserver.jks in our case.
All three certificates must be imported to the same keystore with which CSR was generated.
|
keytool -import -trustcacerts -alias root -file <RootCertFileName.crt > -keystore keystore.key (keystore.key in our case is aeserver.jks) |
If you receive a message that says "Certificate already exists in system-wide CA keystore under alias <...> Do you still want to add it to your own keystore? [no]:", select Yes. If successful, you will see "Certificate was added to keystore".
keytool -import -trustcacerts -alias intermediate -file <IntermediateCertFileName.crt> -keystore keystore.key (keystore.key in our case is aeserver.jks) |
If successful, you will see "Certificate was added to keystore".
keytool -import -trustcacerts -alias intermediate -file <PrimaryCertFileName.crt> -keystore keystore.key (keystore.key in our case is aeserver.jks) |
If successful, you will see "Certificate reply was installed in keystore". You now have all the certificates installed to the keystore file. You just need to configure your server to use the keystore file.
keytool -list -keystore aeserver.jks
Tomcat requires an SSL Connector to be configured before it can accept secure connections.
<Connector className="org.apache.catalina.connector.http.HttpConnector" port="8443" minProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="10" debug="0" scheme="https" secure="true"> <Factory className="org.apache.catalina.net.SSLServerSocketFactory" clientAuth="false" protocol="TLS" keystoreFile="/path to your keystore file" keystorePass="password for the keystore"/> |
Perform the following configuration to take care of non-normalized engine URL,
<error-page> <exception-type>org.springframework.security.web.firewall.RequestRejectedException</exception-type> <location>/errors/rejected</location> </error-page> |
<Tomcat home>/webapps/aeengine/WEB-INF/classes/i18n/messages.properties
Non.Normalised.Url.Entered="You have entered an invalid URL, Please Contact Your Administrator"
AutomationEdge does not use cookies. However, to handle some cookie related issues perform the following configurations to support http only and secure cookies.
<session-config> <session-timeout>30</session-timeout> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> </session-config> |
Websites must employ HTTP Strict Transport Security (HSTS) over just HTTPS. HSTS gives an extra layer of security to your web site and using HSTS may also give SEO (Search Engine Optimization) boost since using HSTS makes web pages load even faster.
Perform the following configuration for HSTS (HTTP Strict Transport Security) header.
<filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>hstsEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>hstsMaxAgeSeconds</param-name> <param-value>31536000</param-value> </init-param> <init-param> <param-name>hstsIncludeSubDomains</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>antiClickJackingEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>antiClickJackingOption</param-name> <param-value>DENY</param-value> </init-param> </filter> <filter-mapping> <filter-name>httpHeaderSecurity</filter-name> <url-pattern>/*</url-pattern> <url-pattern>*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping> |
When a remote Web server supports the TRACE and/or TRACK HTTP methods, a local or remote unprivileged user may be able to abuse the HTTP TRACE/TRACK functionality to gain access to sensitive information in HTTP headers when making HTTP requests. Such as makes it easier for remote attackers to steal cookies and authentication credentials or bypass the HttpOnly protection mechanism. Track / Trace are required to be disabled for PCI compliance.
Perform the following configuration to ddisable these methods in your web server's configuration file.
<security-constraint> <web-resource-collection> <web-resource-name>Forbidden Methods</web-resource-name> <url-pattern>/*</url-pattern> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> <http-method>TRACK</http-method> <http-method>HEAD</http-method> <http-method>PATCH</http-method> </web-resource-collection> <auth-constraint /> </security-constraint> |
Following are the steps to make aeui as default application for tomcat, so when user types the URL like https://xyz.automationedge.com/ in the browser; it will take user to the AutomationEdge Login page.
<Context path="" docBase="aeui"/>
To complete redirection step add following tag just above </web-app> tag in web.xml
<!-- Require HTTPS for everything except /img (favicon) and /css <!-- Require HTTPS for everything except /img (favicon) and /css --> <security-constraint> <web-resource-collection> <web-resource-name>HTTPSOnly</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>HTTPSOrHTTP</web-resource-name> <url-pattern>*.ico</url-pattern> <url-pattern>/img/*</url-pattern> <url-pattern>/css/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data- constraint> </security-constraint> |
Once all these steps are done, start/restart tomcat server and check if the application is running on SSL. It should also redirect http requests to https automatically.
If it is required to handle 404 errors at Tomcat level, reinstate Apache Tomcat ROOT application. You may get ROOT folder from Apache Tomcat distribution.
Add the following to ROOTs web.xml file located at the following path:
<Tomcat home>webapps\ROOT\WEB-INF)
<error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> |
404.html should be created in ROOT folder. Create a custom 404.html file as per needs. A basic sample html file is shown below. You may modify it to suit your requirements. Restart Tomcat Server for the changes to take effect.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>404 Template</title> </head> <body> <div id="notfound"> <div class="notfound"> <div class="notfound-404"> <h3>Oops! Page not found</h3> <h1><span>4</span><span>0</span><span>4</span></h1> </div> <h2>We are sorry, but the page you requested was not found</h2> </div> </div> </body> </html> |
A more elaborate sample of 404.html is shown below. Restart Tomcat Server for the changes to take effect.
<!DOCTYPE html> <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>404 File Not Found</title> <style> * { -webkit-box-sizing: border-box; box-sizing: border-box; } body { padding: 0; margin: 0; } #notfound { position: relative; height: 100vh; } #notfound .notfound { position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .notfound { max-width: 520px; width: 100%; line-height: 1.4; text-align: center; } .notfound .notfound-404 { position: relative; height: 240px; } .notfound .notfound-404 h1 { font-family: 'Montserrat', sans-serif; position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); font-size: 252px; font-weight: 900; margin: 0px; color: #262626; text-transform: uppercase; letter-spacing: -40px; margin-left: -20px; } .notfound .notfound-404 h1>span { text-shadow: -8px 0px 0px #fff; } .notfound .notfound-404 h3 { font-family: 'Cabin', sans-serif; position: relative; font-size: 16px; font-weight: 700; text-transform: uppercase; color: #262626; margin: 0px; letter-spacing: 3px; padding-left: 6px; } .notfound h2 { font-family: 'Cabin', sans-serif; font-size: 20px; font-weight: 400; text-transform: uppercase; color: #000; margin-top: 0px; margin-bottom: 25px; } @media only screen and (max-width: 767px) { .notfound .notfound-404 { height: 200px; } .notfound .notfound-404 h1 { font-size: 200px; } } @media only screen and (max-width: 480px) { .notfound .notfound-404 { height: 162px; } .notfound .notfound-404 h1 { font-size: 162px; height: 150px; line-height: 162px; } .notfound h2 { font-size: 16px; } } </style> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js%22%3E%3C/script%3E <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js%22%3E%3C/script%3E <![endif]--> <body> <div id="notfound"> <div class="notfound"> <div class="notfound-404"> <h3>Oops! Page not found</h3> <h1><span>4</span><span>0</span><span>4</span></h1> </div> <h2>we are sorry, but the page you requested was not found</h2> </div> </div> </body></html> |
Comment out all the transport connectors except the openwire connector (with port 61616) in node <transportConnectors> of activemq.xml file. This way other ports are not opened up by ActiveMQ.
To encrypt communication happening over openwire, ActiveMQ should be set with SSL.
<transportConnectors> <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> <transportConnector name="openwire" uri="ssl://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <!-- <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> --> </transportConnectors> |
</transportConnectors> uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> --> </transportConnectors> <sslContext keyStore="/<path_to_file>/aebroker.ks" keyStorePassword="password" trustStore="/<path_to_file>/aeclient.ks" trustStorePassword="password"/> </sslContext> |
activemq.broker.url=ssl://localhost:61616
tomcat9w.exe //ES//<Tomcat Service Name>
For example,
tomcat9w.exe //ES//Tomcat9
You will need to change the paths mentioned above as per your installation paths
|
Create setenv.bat/sh file with following lines under <CATALINA_HOME>/bin
For setenv.bat use:
set CATALINA_OPTS=-Djavax.net.ssl.keyStore=<path_to_file>/aeclient.ks
-Djavax.net.ssl.keyStorePassword=changeme
-Djavax.net.ssl.trustStore=<path_to_file>/aeclient.ts
For setenv.sh use:
export CATALINA_OPTS=”-Djavax.net.ssl.keyStore=<path_to_file>/aeclient.ks
-Djavax.net.ssl.keyStorePassword=changeme
-Djavax.net.ssl.trustStore=<path_to_file>/aeclient.ts”
Following, are the steps for encrypting admin console password,
java -cp jetty-all-9.2.25.v20180606.jar org.eclipse.jetty.util.security.Password <user> <password>
e.g.
java -cp jetty-all-9.2.25.v20180606.jar org.eclipse.jetty.util.security.Password admin password1
This will output the following password1
OBF:1l1a1s3g1yf41xtv20731xtn1yf21s3m1kxs MD5:7c6a180b36896a0a8c02787eeafb0e4c CRYPT:advwtv/9yU5yQ
Use any of the above lines and copy into the following file and save it.
<ACTIVEMQ_HOME>\conf\jetty-realm.properties
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin
user: user, user
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin
user: user, user
admin: CRYPT:advwtv/9yU5yQ,admin
user: MD5:asdjalskjdasksad0b36896a0a8c02787eeafb0e4c,user
ActiveMQ authentication is not enabled by default for AE. Here are the steps to enable authentication for ActiveMQ and necessary changes to be done in AE engine.
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>file:${activemq.conf}/credentials.properties</value> </property> </bean> |
<bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"> <property name="algorithm" value="PBEWithMD5AndDES" /> <property name="passwordEnvName" value="ACTIVEMQ_ENCRYPTION_PASSWORD"/> </bean> <bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"> <property name="config" ref="environmentVariablesConfiguration" /> </bean> <bean id="propertyConfigurer" class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer"> <constructor-arg ref="configurationEncryptor" /> <property name="location" value="file:${activemq.conf}/credentials-enc.properties"/> </bean> |
<plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="aeuser" password="${aeuser.password}" groups="admins"/> </users> </simpleAuthenticationPlugin> </plugins> |
After you have done the entire aforementioned configuration to enable authentication for ActiveMQ, you must set the ACTIVEMQ_ENCRYPTION_PASSWORD environment variable.
Under System Variables, add New variable.
Enter the variable name as ACTIVEMQ_ENCRYPTION_PASSWORD
Enter the variable value as “activemq”.
For example,
ACTIVEMQ_ENCRYPTION_PASSWORD=activemq
$cd /etc/profile.d/
$sudo touch automationedge.sh
export ACTIVEMQ_ENCRYPTION_PASSWORD=activemq
#ActiveMQ credentials
mq.username=aeuser
mq.password=mypassword
AE has support for secured URL. To configure that:
For example,
baseurl = https://localhost:8443/aeengine/rest
This appendix lists some important files in AutomationEdge File System
AutomationEdge Tools directory (<preferred_drive>:/AutomationEdge/tools) directory and its components are described below.
This directory contains the CeateDBSchema executables to create an empty database named "vae". Schema/tables will be created/populated automatically by the application once deployed.
AutomationEdge Home directory (<preferred_drive>:/AutomationEdge/aehome)
AutomationEdge Enable Debug Logging
Log level values can be set for AE Server, Agent and Integration Service by changing the log level at the locations mentioned below. There is no need to restart tomcat service or agent. After 1-2 minutes of changing (and saving file) log level in the log4j2.xml file, DEBUG logs start appearing.
This section is for installation on Red Hat Enterprise Linux (RHEL) based Linux distributions such as CentOS, Fedora, OEL. The Steps and commands were performed on CentOS 7
For installation on Debian based Linux distributions such as Ubuntu, OpenSuse, Kali refer 3 Appendix 3: AE Installation on Ubuntu.
Perform an environment check for the following,
In this section we will discuss installation of the following components.
For AutomationEdge R6.0.0 onwards, JDK's HotSpot version 11.0.9 is required.
|
Tool |
Version |
Download URL |
1 |
Java Runtime Environment (JRE 64 bit) |
For AE releases 6.0.0 onwards, Adopt JDK's HotSpot version 11.0.9. |
Setup Adopt JDK's HotSpot version 11.0.9 as follows,
sudo apt-get install zip unzip
e.g. unzip OpenJDK11U-jre_x64_windows_hotspot_11.0.9.1_1
After you have setup Java, you must set the JRE_HOME environment variable to point to the JRE11 binaries directory as follows,
JRE_HOME=”<path for the JRE11 binaries>” (e.g. /home/<username>/JRE11/jre-11.0.9)
Set environment variable PATH and prefix JRE_HOME/bin to the PATH environment variable
PATH=$JRE_HOME/bin:$PATH
To verify and check the java version installed, execute the following command on the new command prompt:
(Check if the command prints the expected version of the installed Java)
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
Following are the steps to install PostgreSQL on CentOS
rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
(This command works for Redhat/CentOS)
yum list postgresql*
If the above command gives any error, go to /etc/yum.repos.d and check/modify file CentOS-Base.repo
yum install postgresql95-server.x86_64
/usr/pgsql-9.5/bin/postgresql95-setup initdb
systemctl start postgresql-9.5.service
vi /var/lib/pgsql/9.5/data/postgresql.conf
Then, go to the Connection Settings and uncomment and change from
listen_addresses='localhost' to listen_addresses='*'
vi /var/lib/pgsql/9.5/data/pg_hba.conf
Look for the following line under --> "local" is for unix domain socket connections only.
local all all peer
Change peer --> md5. It would look something like this.
local all all md5
host all all 127.0.0.1/32 ident
Comment the above line and copy it just below it and change ident to md5
host all all 127.0.0.1/32 md5
Change the ip from 127.0.0.1/32 --> machine IP or network from where you would like to connect to the DB. (e.g. 10.41.18.*/24).
It would look something like this,
host all all 127.0.0.1/32 md5
host all all 10.41.16.*/24 md5
systemctl restart postgresql-9.5.service
Following are the steps to install Apache ActiveMQ
mv apache-activemq-5.14.3-bin.tar.gz /tools
tar zxvf apache-activemq-5.14.3-bin.tar.gz
You can rename this extracted directory or keep as it is.
bin/activemq start
netstat -nl|grep 61616
bin/activemq status
Following are the steps to install Apache Tomcat,
tar xzvf *apache tomcat version name*
e.g. tar xzvf apache-tomcat-9.0.0.M8.tar.gz
In this section we shall create a directory structure and database for AutomationEdge. We shall then deploy Automation engine and UI war files on Tomcat server.
Create the following directories on the machine and setup AE_HOME environment variable:
e.g. /home/<username>/Automationedge
This is the top-level directory of AutomationEdge installation also known as AutomationEdge Base Directory. AutomationEdge Base Directory is a directory into which all AutomationEdge software and components are installed.
e.g. /home/<username>/Automationedge/tools
e.g. /home/<username>/Automationedge/aehome
AutomationEdge home is a working directory for AutomationEdge server.
Hence forth, the complete file path of AutomationEdge Home is referred to as <AE home>.
Set environment variable
AE_HOME= ”<path for the AE working directory>”
e.g. AE_HOME=/home/<username>/Automationedge/aehome
/home/<username>/Automationedge/aedb
Following are the steps to create a database on Post
su - postgres
psql
postgres=# \password postgres
Use createdbschema.sh script
Run script
e.g. createdbschema.sh "/usr/pgsql-9.5/bin" localhost 5432 postgres ***** vae
Following are the steps to deploy war files,
If postgres DB user password is different, change it in file /tools/automationedge/conf/database.properties
This completes the steps for AutomationEdge installation on CentOS.
Refer this section for installation on Debian based Linux distributions such as Ubuntu, OpenSuse, Kali. The steps and commands were performed on Ubuntu 18.
For installation on Red Hat Enterprise Linux (RHEL) based Linux distributions such as CentOS, Fedora, OEL refer 2 Appendix 2: AE Installation on CentOS
Perform an environment check for the following,
In this section we will discuss installation of the following components.
For AutomationEdge R6.0.0 onwards, JDK's HotSpot version 11.0.9 is required.
|
Tool |
Version |
Download URL |
1 |
Java Runtime Environment (JRE 64 bit) |
For AE releases 6.0.0 onwards, Adopt JDK's HotSpot version 11.0.9. |
Setup Adopt JDK's HotSpot version 11.0.9 as follows,
sudo apt-get install zip unzip
e.g. unzip OpenJDK11U-jre_x64_windows_hotspot_11.0.9.1_1
After you have setup Java, you must set the JRE_HOME environment variable to point to the JRE11 binaries directory as follows,
Add following line in /etc/environment file or alternatively in /home/<username>/.bash_profile/.bashrc/.profile
JRE_HOME=”<path for the JRE11 binaries>” (e.g. /home/<username>/JRE11/jre-11.0.9)
Set environment variable PATH and prefix JRE_HOME/bin to the PATH environment variable
PATH=$JRE_HOME/bin:$PATH
To verify and check the java version installed, execute the following command on the new command prompt:
(Check if the command prints the expected version of the installed Java)
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
Following are the steps to install PostgreSQL on Ubuntu,
sudo su
Enter password.
apt-get install postgresql-9.5 -y
passwd postgres
Enter new UNIX password: admin123
Retype new UNIX password: admin123
Press “Enter”.
exit
su postgres
Enter a password
psql
\l
\password
CREATE DATABASE vae;
\q
exit
sudo su
cd /etc/postgresql/9.5/main
gedit postgresql.conf
listen_addresses = ‘*’
service postgresql status
service postgresql stop
service postgresql start
Following are the steps to install ActiveMQ on Ubuntu,
cd /tmp/Mozilla_aeadmin0
mkdir /home/<user_name>/AE_Tools
mv /tmp/Mozilla_aeadmin0/apache-activemq-5.14.4.tar.gz /home/<user_name>/AE_Tools
cd /home/<user_name>/AE_Tools
tar –zxvf apache-activemq-5.14.4.tar.gz
lscpu
cd AE_Tools/apache-activemq-5.14.4/bin/linux-x86-64
pwd
cd /etc/init.d
sudo ln -s /home/aeadmin/AE_Tools/apache-activemq-5.14.4/bin/linux-x86-64/activemq activemq
ls -lrt ac*
cd ~
/etc/init.d/activemq start
/etc/init.d/activemq status
/etc/init.d/activemq stop
Following are the steps to install Tomcat on Ubuntu,
mv /tmp/Mozilla_aeadmin0/apache-tomcat* .
tar -zxvf apache-tomcat-9.0.5.tar.gz
cd AE_Tools/apache-tomcat-9.0.5/bin/
pwd
cd /etc/init.d
sudo ln -s /home/aeadmin/AE_Tools/apache-tomcat-9.0.5/bin/startup.sh tomcat9
sudo ln -s /home/aeadmin/AE_Tools/apache-tomcat-9.0.5/bin/shutdown.sh stop_tomcat9
ls –lrt to* stop*
sudo /etc/init.d/start_tomcat9
Sudo /etc/init.d/stop_tomcat9
ps –ef | grep java
ps –ef | grep java
In this section we shall create a directory structure and database for AutomationEdge. We shall then deploy Automation engine and UI war files on Tomcat server.
Create the following directories on the machine and setup AE_HOME environment variable:
e.g. /home/<username>/Automationedge
This is the top-level directory of AutomationEdge installation also known as AutomationEdge Base Directory. AutomationEdge Base Directory is a directory into which all AutomationEdge software and components are installed.
e.g. /home/<username>/Automationedge/tools
e.g. /home/<username>/Automationedge/aehome
AutomationEdge home is a working directory for AutomationEdge server.
Hence forth, the complete file path of AutomationEdge Home is referred to as <AE home>.
Set environment variable
AE_HOME= ”<path for the AE working directory>”
e.g. AE_HOME=/home/<username>/Automationedge/aehome
/home/<username>/Automationedge/aedb
Following are the steps to deploy war files,
cd “/home/<user_name>/AE_Tools/apache-tomcat-9.0.5/webapps”
“/home/aeadmin/AE_Tools/apache-tomcat-9.0.5/webapps” directory.
rm -rf *
mv aeengine-4.0.0.0.war aeengine.war
mv aeui-4.0.0.0.war aeui.war
If postgres DB user password is different, change it in file /tools/automationedge/conf/database.properties
This completes the steps for AutomationEdge installation on Ubuntu.