General information
Prerequisites
The steps are valid only for Linux Servers: DB, APP, APM, OCR (Linux), AutoML (Cluster)
Linux servers are up and running and all system requirements are met as described in 9.2.x System Requirements
SSH access is allowed to the servers with root privileges
If created manually, a non-privileged user (
WF_USER) must have the same name, UID, and GID.DNS names for all servers (Linux and Windows) are configured according to the DNS names configuration guide.
Application Ports are open between servers.
Installation packages are uploaded to servers.
/opt/workfusion—INSTALL_DIR: default Workfusion installation directory. Change it to your own if necessary./opt/workfusion/wf_installer—<PACKAGE_DIR>: directory where installation package was extracted.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/workfusion-full-package-9.1.0.0.tar.gz: full path of installation package which was uploaded to all Linux servers/opt/workfusion/wf_installer: directory where the package is extracted (may be referred to as<package_dir>)/opt/workfusion: directory where the product will be installed (may be referred to as<install_dir>)wfgroupandwfuser: group and user which will own the product at run-time (may be referred to as<wf_group>and<wf_user>)
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/workfusion/wf_installer chmod 0755 /opt/workfusion/wf_installerExtract the installation package:
tar -xzvf /opt/workfusion/workfusion-full-package-9.1.0.0.tar.gz --strip 1 -C /opt/workfusion/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 (
viis used in the example below):cd /opt/workfusion/wf_installer vi config.yml vi secrets.ymlThe configuration files are thoroughly commented to explain each of the parameters.
You can also refer to Workfusion Config Files section for more details on each configuratin option.
Generate TLS and Vault Certificates for all servers:
Generate TLS and Vault Certificates by the
generate-certificates.shscript. It is mandatory to run./generate-certificates.shscript as it also generates Vault authentication certificates among others, which are required for Product:./generate-certificates.sh -n -d -p "my_ca_pass"- After running this command, two folders are populated with certificates:
./certificatesand./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.ymlfile,https_enabled: true, the certificates from the./certificatesfolder will be used for configuring HTTPS for all components. - If in the
config.ymlfile,https_enabled: false, the certificates from the./certificatesfolder will be ignored (except for Vault certificates).
- After running this command, two folders are populated with certificates:
If you want to apply publicly trusted TLS certificates, you should put them into the
./certificatesfolder instead of the ones generated with./generate-certificates.sh.
We need to distribute the
./certificatesfolder (not./certs_db), theconfig.ymlandsecrets.ymlfiles across all other Linux servers.Create the archive of these files:
tar czvf wf_configs.tar.gz certificates config.yml secrets.ymlAfter running this command, the
wf_configs.tar.gzfile was created.The easiest way to deliver
wf_configs.tar.gzto 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 downloadingwf_configs.tar.gzto 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:
Log in into target server as root and download
wf_configs.tar.gzfrom DB server:cd /opt/workfusion/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/workfusion/wf_installer/
Install WorkFusion license
Perform the step below on APP server.
Copy the license.properties file (obtained from WorkFusion) to the
location where you've extracted the installer: /opt/workfusion/wf_installer. Its full path should be as follows:
/opt/workfusion/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-master: AutoML Master server*vds-slave: AutoML Agent server*vds-nfs: NFS server for AutoML servers*
* The VDS acronym refers to a legacy Workfusion product called Virtual Data Scientist. AutoML (Automatic Machine Learning) is the name of the latest component that does was VDS did previously. All references to VDS are references to AutoML.
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: trueautomate_system_packages_install: true
Tasks to be performed on this step:
- Setting SELinux state to permissive with targeted policy.
- 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_installshould be set totrueinconfig.yml. If not, see Required packages and install them manually. - Installation of bundled RPM dependencies that cannot be or have not yet been converted to the non-root variant.
- Enabling and starting supervisord via systemd.
Run as root:
./install.sh preinstall <server_role>
- If you use
automate_system_packages_install: true, ensure that curl and openssl packages have versions at least not older than described in Required packages. You can check it as follows:rpm -q curlrpm -q openssl
- 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 the Run preinstall manually section, and then go to Installation steps.