Preinstallation steps
Prerequisites
The following provisions should be made before you proceed to the steps below:
- The steps are valid only to Linux Servers: DB, APP, APM, OCR, VDS (both Standalone or Cluster types of installation).
- Linux servers are up and running and all system requirements are met.
- You have SSH access to all servers and root access on them.
- DNS names for all servers have been configured as described in the DNS Names Configuration section.
- Linux servers have all required network ports opened between each other as described in the Application Ports section. If the servers are located in one network and there are no any firewalls between them, no additional actions are required.
- Installation package provided by Workfusion has been already uploaded to every Linux server.
The steps described here cover 90% of all effort required for installing WorkFusion SPA. In code snippets on this page some common variables are reasonably hard-codded so that it's easier to copy-paste every step if you agree on these defaults:
/opt/workfusion-full-release-flat-8.5.0.tar.gz: full path of installation package which was uploaded to all Linux servers./opt/wf_installer: directory where the package is extracted./opt/workfusion: directory where the product will be installed.wfgroupandwfuser: group and user which will own the product at run-time. You can safely use your own values, replacing the default ones appropriately.
Extract package
Perform the steps below on all Linux servers.
Log in to the target server as root.
Example:
ssh -i /path/to/private-key.pem user@hostname.example.com sudo su - rootChoose or create a directory on the file-system where you want to extract installation package. Grant read access for this directory to all users:
mkdir /opt/wf_installer chmod 0755 /opt/wf_installerExtract installation package:
tar -xzvf /opt/workfusion-full-release-flat-8.5.0.tar.gz --strip 1 -C /opt/wf_installer
Perform initial configuration
Perform the steps below on DB server.
Log in to DB Server via SSH.
Edit the following files with any available editor ("vi" is used in the example below):
cd /opt/wf_installer vi config.yml vi secrets.ymlThe configuration files are thoroughly commented to explain each of the parameters. You can also refere to the Workfusion Config Files section for more details on each configuratin option.
Generate TLS and Vault Certificates for all servers:
./generate-certificates.sh -n -d -p "my_ca_pass"
After running this command, two folders are populated with certificates: ./certificates/ and ./certs_db/. The command above has generated self-signed certificates for all Linux servers. Refer to Using TLS Certificates for more details on other options.
- If in the
config.ymlfilehttps_enabled: true, the certificates from the./certificates/folder will be used for configuring HTTPS for all components. - If in the
config.ymlfilehttps_enabled: false, the certificates from the./certificates/folder will be ignored (except for vault certificates).
It is required to run the ./generate-certificates.sh script in any case as it also generates Vault authentication certificates among others which are required for Product.
If you want to apply publicly trusted TLS certificates, put them into the ./certificates/ folder instead of the ones which were generated with ./generate-certificates.sh.
We need to distribute the ./certificates folder
(**not **./certs_db), config.yml, and secrets.yml files across
all other Linux servers.
Create archive of these files:
tar czvf wf_configs.tar.gz certificates config.yml secrets.ymlAfter running this command, the file wf_configs.tar.gz was created.
The easiest way to deliver wf_configs.tar.gz to all other Linux servers is via python SimpleHTTPServer. Firstly, start the HTTP server on any port which is accessible on DB server for all other Linux servers (it can be any port, even the one which will be used by some service on DB server, as it's temporary operation just for downloading wf_configs.tar.gz to other servers). In the example below, 9999 port is used:
python -m SimpleHTTPServer 9999This command makes the directory content where the command was executed downloadable via HTTP.
Run the next steps on all other Linux servers:
Login in to target server as root and download wf_configs.tar.gz from DB server:
cd /opt/wf_installer # install wget if not installed yum -y install wget wget http://db_hostname:9999/wf_configs.tar.gz -O wf_configs.tar.gzUnpack configs and certificates:
tar xzvf wf_configs.tar.gz -C /opt/wf_installer/
Install WorkFusion license
Perform the step below on APP server.
Copy the license.properties file (obtained from WorkFusion) to the location which you have specified in the secrets.yml file for the workfusion_license_file parameter (the path is relative to the /opt/wf_installer/ directory).
/opt/wf_installer/license.properties
Run precheck
Should be performed on all Linux servers. This step validates the provided configuration, checks system requirements and prerequisites.This step does not change anything in the system.It is impossible to proceed further with installation without passing this step.
./install.sh precheck <server_role>
Available Server roles:
apm: APM serverapp: APP serverdb: DB serverocr: OCR servervds-standalone: standalone ML servervds-master: master ML servervds-slave: slave ML servervds-nfs: NFS server for ML servers
Run preinstall automatically
Should be performed on all Linux servers. To execute all preinstall steps automatically, two options should be set in config.yml:
automate_preinstall_steps: true
automate_system_packages_install: true
Tasks to be performed on this step:
Setting SELinux state to
permissivewithtargetedpolicy.Creating a user or ensuring the user exists, as defined in
wf_user(defaultwfuser).Creating directory as defined in
install_dir.Installation of packages from official RHEL repo (automate_system_packages_install should be set to
trueinconfig.yml. If not, see Required packages and install them manually).Installation of bundled RPM dependencies (which can not be or have not yet been converted to the non-root variant).
Enabling and starting
supervisordvia systemd.Run as root:
./install.sh preinstall <server_role>After execution of this step on all Linux servers, proceed to the installation steps.
If for some reason you are not allowed to perform Preinstall steps automatically, refer to Run preinstall manually section and Installation steps.