Upgrade from 9.0.x to 9.1
Do not change passwords when performing this upgrade. Use the same passwords from your SPA 9.0 installation. The upgrade will fail if you attempt to change the passwords. Changing passwords will be supported in a future patch release of SPA 9.1
Overview
This is the guide to follow for upgrading WorkFusion SPA software from one release to another. This guide does not include the migration of business processes.
This is a guide how to do an in-place upgrade from 9.0.x to 9.1.
During upgrade procedure the installer
- Creates a backup of the current config files.
- Replaces them with the new versions.
- Overrides values in new files with those from the old installation.
Prerequisites
- WorkFusion SPA 9.0.0 is installed on RHEL 7.
- You have downloaded the 9.1.0 installer to all servers to be upgraded.
- Prepare Business Processes to upgrade migration notes.
Provisions
The following provisions should be observed when using this guide.
WorkFusion Installer Directory
In this guide the directory where the installer is located is referred
as <PACKAGE_DIR>.
WorkFusion Home Directory
In this guide, WorkFusion Home Directory is referred as <INSTALL_DIR>.
We assume, that WorkFusion Home Directory is /opt/workfusion/.
If WorkFusion is installed in another directory in your environment, use that directory instead.
WorkFusion default user
Default WorkFusion user is assumed as wfuser.
If the default user is different in your environment, use that username instead.
Available Server roles:
apm: APM serverapp: APP serverdb: DB serverocr: OCR servervds-master: master ML servervds-slave: slave ML server
Preparation
Ensure, that DNS names for servers are configured according to DNS Names Configuration section.
If you initially added DNS names for s3 buckets on DB server explicitly, the following DNS names are not required in 9.1 and therefore can be removed:
crowdcontrol.taglib.db.example.com cv-help.db.example.com doc-upload.db.example.com logos.crowdcomputing.db.example.com public.crowdcontrol.db.example.com recorder-images.db.example.com secdocs.db.example.com tinymce-resources.db.example.com vds-models.db.example.com vds-resources.db.example.com workfusion-resources.db.example.com workfusiondevelopment.db.example.com workspace-resources.db.example.comStop all processes on all servers.
SSH into
<server_role>server.Run as
wfuser.
wfmanager stop all
Preparing certificates and configs
Copy certificates and configs into the 9.1 installer folder.
We have a backup of config files and certificates in the previous installation directory, for example,
<INSTALL_DIR>/distr/2018-04-28-1524913731/. So, we should reuse old certificates, secrets, and config values.Run as wfuser on all servers:
cd <PACKAGE_DIR> cp -r <INSTALL_DIR>/distr/2018-04-28-1524913731/certificates . cp <INSTALL_DIR>/distr/2018-04-28-1524913731/config_overrides.yml ./config_overrides.yml cp <INSTALL_DIR>/distr/2018-04-28-1524913731/secrets_overrides.yml ./secrets_overrides.ymlTurn off passwords verification checks.
Starting from 9.1, we introduced verifications for passwords complexity in the precheck phase.
Passwords in the
secrets.ymlfile:- Must be not shorter that 6 symbols and not longer than 20 symbols.
- Must contain at least one capital letter [A-Z].
- Must contain at least one number [0-9].
- Must contain at least one of the following cpecial symbols: "!", "*", "#", "%", "^", "@".
- Must NOT contain the following symbols: "$", "&";
These password verifications may cause failures during upgrade because passwords from previous installation will be used while upgrading and they may not satisfy new passwords requirements introduced in 9.1.0 release. So you need to turn verifications off:
cd <PACKAGE_DIR> echo "passwords_check: false" >> ./config_overrides.ymlCopy the license file.
The license file should be copied to APP Server only.
Run as
wfuser.cp <INSTALL_DIR>/workfusion/conf/license.properties .
Upgrade steps
Go to WorkFusion Installer Directory:
cd <PACKAGE_DIR>
DB server
Perform precheck and preinstall operations.
Run as
root../install.sh precheck <server_role> -e @config_overrides.yml -e @secrets_overrides.yml ./install.sh preinstall <server_role> -e @config_overrides.yml -e @secrets_overrides.ymlPerform installation and post-install check operations.
Run as
wfuser../install.sh install <server_role> -e @config_overrides.yml -e @secrets_overrides.yml ./install.sh check <server_role> -e @config_overrides.yml -e @secrets_overrides.ymlCheck already used disk space by Riak to ensure that
<INSTALL_DIR>has enough capacity to create the same amount of data for Minio migration (2x size).List all buckets:
s3cmd --signature-v2 -c /opt/workfusion/s3cmd_conf/workfusion_s3cfg ls 2018-08-20 11:31 s3://doc-upload 2018-08-20 11:31 s3://recorder-images 2018-08-20 11:31 s3://secdocs 2018-08-20 11:31 s3://tinymce-resourcesCheck bucket size and sum output values:
s3cmd --signature-v2 -c /opt/workfusion/s3cmd_conf/workfusion_s3cfg du s3://doc-upload 73400 8 objects s3://doc-upload/To perform S3 data migration from Riak to Minio:
Start riak:
wfmanager start riak-cs wfmanager start riak wfmanager start riak-stanchionCheck Minio hosts:
cd <INSTALL_DIR>/tools ./mc -C <INSTALL_DIR>/minio_client_conf/ config host listThe similar output should appear:
gcs : https://storage.googleapis.com YOUR-ACCESS-KEY-HERE YOUR-SECRET-KEY-HERE S3v2 dns local: http://localhost:9000 auto minio: http://localhost:9000 YOUR-ACCESS-KEY-HERE YOUR-SECRET-KEY-HERE s3v4 auto play : https://play.minio.io:9000 YOUR-ACCESS-KEY-HERE YOUR-SECRET-KEY-HERE S3v4 auto riak : http://localhost:8081 YOUR-ACCESS-KEY-HERE YOUR-SECRET-KEY-HERE s3v2 auto s3 : https://db-server-host-name YOUR-ACCESS-KEY-HERE YOUR-SECRET-KEY-HERE s3v2 autoAdd Riak to mc hosts:
cd <INSTALL_DIR>/tools ./mc -C <INSTALL_DIR>/minio_client_conf/ config host add riak http://127.0.0.1:8081 <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> --api s3v2 --insecureExecute the following command bellow:
cd <INSTALL_DIR>/tools ./mc -C <INSTALL_DIR>/minio_client_conf/ mirror riak minio --overwriteRun the next command to set all buckets to public:
for i in $(ls <INSTALL_DIR>/minio/data); do <INSTALL_DIR>/tools/mc -C <INSTALL_DIR>/minio_client_conf/ policy public minio/$i; doneCheck if migration is successful:
cd <INSTALL_DIR>/tools ./mc -C <INSTALL_DIR>/minio_client_conf/ ls minio/doc-uploadThe similar output should appear:
[2018-08-17 11:07:05 UTC] 17KiB 08b66fcb-8e9c-4931-a177-f9002157b9ba.pdf [2018-08-17 11:08:00 UTC] 512B 12bb166d-a847-42a0-a49f-04e0de500da6.html [2018-08-17 11:08:40 UTC] 512B 7afd9205-04a6-423b-88ef-aae30b8b4d81.html [2018-08-17 11:07:05 UTC] 512B 9615fba7-62ab-4250-a22d-03a50d6315f2.html [2018-08-17 11:06:18 UTC] 17KiB a0ae9da5-2ce7-4511-887d-a0fa87a27b1f.pdf [2018-08-17 11:06:19 UTC] 512B ba400afb-1045-4969-b3da-81b50876ce9d.html [2018-08-17 11:08:40 UTC] 17KiB db299e4b-f081-419e-a62b-0ae50c9c9f86.pdf [2018-08-17 11:08:00 UTC] 17KiB f36f2b21-277e-41cb-b45c-ce241578e02b.pdfRemove Riak.
Stop all Riak components.
Run as
wfuser:wfmanager stop riak-stanchion wfmanager stop riak wfmanager stop riak-csDelete init scripts for Riak.
cd <INSTALL_DIR>/supervisord/apps rm riak.ini rm riak-cs.ini rm riak-stanchion.iniDelete Riak folders.
cd <INSTALL_DIR>/ rm -rf riak rm -rf riak-cs rm -rf riak-stanchion
APP, APM, OCR servers
Perform precheck and preinstall operations.
Run as
root../install.sh precheck <server_role> -e @config_overrides.yml -e @secrets_overrides.yml ./install.sh preinstall <server_role> -e @config_overrides.yml -e @secrets_overrides.ymlPerform installation and post-install check operations.
Run as
wfuser../install.sh install <server_role> -e @config_overrides.yml -e @secrets_overrides.yml ./install.sh check <server_role> -e @config_overrides.yml -e @secrets_overrides.yml
VDS-Master Server
Perform precheck and preinstall operations.
Run as
root../install.sh precheck <server_role> -e @config_overrides.yml -e @secrets_overrides.yml -e ''{\'vds_update_zookeeper_config\':false}'' ./install.sh preinstall <server_role> -e @config_overrides.yml -e @secrets_overrides.yml -e ''{\'vds_update_zookeeper_config\':false}''Perform installation and post-install check operations.
Run as
wfuser../install.sh install <server_role> -e @config_overrides.yml -e @secrets_overrides.yml -e ''{\'vds_update_zookeeper_config\':false}'' ./install.sh check <server_role> -e @config_overrides.yml -e @secrets_overrides.yml -e ''{\'vds_update_zookeeper_config\':false}''
VDS-Slave Server
Perform Precheck and Preinstall operations.
Run as
root../install.sh precheck <server_role> -e @config_overrides.yml -e @secrets_overrides.yml ./install.sh preinstall <server_role> -e @config_overrides.yml -e @secrets_overrides.ymlPerform installation and post-install check operations.
Run as
wfuser.rm -f <INSTALL_DIR>/mesos/work/meta/slaves/latest ./install.sh install <server_role> -e @config_overrides.yml -e @secrets_overrides.yml ./install.sh check <server_role> -e @config_overrides.yml -e @secrets_overrides.yml
Post-upgrade steps
If needed, update the configuration files with required parameters from the config backups.
You can review difference between old configuration files and new in
changes log: <INSTALL_DIR>/distr/2018-04-28-1527769370/diff_changes_.log