Skip to main content
Version: 10.2.9

Upgrade from RHEL 7.x to RHEL 8.x

The instruction is intended for users who have the Work.AI platform installed in RHEL 7.x and intend to move to RHEL 8.x.

To upgrade from RHEL 7.x to RHEL 8.x, follow the steps below:

  1. Create two Linux boxes with RHEL 8.5.

  2. Migrate or remount the following storage volumes to the newly created Linux boxes with RHEL 8.5:

    • Volumes attached to respective Linux hosts:

      • /opt/workfusion (Master)

      • /opt/workfusion/zookeeper/datalog (Master)

      • /opt/workfusion (Agent)

    • The /opt/workfusion/vds-data volumes attached to both the Agent and Master.

    note

    The application storage must be other than the Linux root volume. Otherwise, upgrading from 7.x to 8.x is not applicable. The storage file system can be dependent upon which type of service you are using—on-prem or Cloud setup.

  3. Switch the internal IP of a Linux host from RHEL 7.x to RHEL 8.x.

    To switch the internal IP of a Linux host on an EC2 instance or Virtual Machine to another EC2 instance or Virtual Machine, follow these steps:

    1. For an EC2 instance, in the network interface, make sure that Enable Termination Protection is disabled. For Virtual Machines, disable any VM termination from VMware if enabled.

    2. Unattach the Network interface IP from the Virtual Machine whose internal IP you want to switch.

      In the AWS service, since you can’t update the primary IP address on the current instance, create a Snapshot and then terminate the EC2 instance whose internal IP you want to switch.

    3. Attach the Elastic/Network Interface (ENI) to the new EC2 instance or Virtual Machine where you want to switch the internal IP:

      1. Click Actions, select Networking, then click Attach network interface.

      2. Choose the network interface you just created from the list of available interfaces.

      3. Select the device index to which you want to attach the network interface and click Attach.

  4. Start the new EC2 instance or Virtual Machine to which the ENI is attached.

To complete the upgrade, do the following:

  1. Perform the Kerberos step (on Masters only).

    cd /opt/workfusion/wf_installer
    mkdir -pv kerberos
    chmod 0777 kerberos
    cd /opt/workfusion/wf_installer/kerberos
    rpm2cpio /opt/workfusion/wf_installer/sources/krb5-libs-*.el8.x86_64.rpm | cpio -idmv >/dev/null 2>&1
    rpm2cpio /opt/workfusion/wf_installer/sources/krb5-workstation-*.el8.x86_64.rpm | cpio -idmv >/dev/null 2>&1
    rpm2cpio /opt/workfusion/wf_installer/sources/libkadm5-*.el8.x86_64.rpm | cpio -idmv >/dev/null 2>&1
  2. Perform the OpenSSL step (on Masters only).

    cd /opt/workfusion/wf_installer
    mkdir -pv openssl
    chmod 0777 openssl
    cd /opt/workfusion/wf_installer/openssl
    rpm2cpio /opt/workfusion/wf_installer/sources/compat-openssl10-*.el8.x86_64.rpm | cpio -idmv >/dev/null 2>&1
    rpm2cpio /opt/workfusion/wf_installer/sources/make-*.el8.x86_64.rpm | cpio -idmv >/dev/null 2>&1
    rpm2cpio /opt/workfusion/wf_installer/sources/openssl-1*.el8*.rpm | cpio -idmv >/dev/null 2>&1
    export PATH=""/opt/workfusion/wf_installer/openssl/usr/bin:${PATH}""
    export LD_LIBRARY_PATH=""/opt/workfusion/wf_installer/openssl/usr/lib:/opt/workfusion/wf_installer/openssl/usr/lib64:${LD_LIBRARY_PATH}""
  3. Perform the SQL step (on Masters only).

    cd /opt/workfusion/wf_installer
    mkdir -pv sqlcmd
    chmod 0777 sqlcmd
    cd /opt/workfusion/wf_installer/sqlcmd
    rpm2cpio /opt/workfusion/wf_installer/sources/mssql-tools-*.rpm | cpio -idmv >/dev/null 2>&1
    rpm2cpio /opt/workfusion/wf_installer/sources/msodbcsql17-*.rpm | cpio -idmv >/dev/null 2>&1
    rpm2cpio /opt/workfusion/wf_installer/sources/unixODBC-*.rpm | cpio -idmv >/dev/null 2>&1
    export PATH=""/opt/workfusion/wf_installer/sqlcmd/opt/mssql-tools/bin:${PATH}""
    export LD_LIBRARY_PATH=""/opt/workfusion/wf_installer/sqlcmd/usr/lib64:${LD_LIBRARY_PATH}""
  4. Copy the HA proxy binary (on Masters only).

    cp -r /opt/workfusion/wf_installer/sources/haproxy-2.6.0-rhel8-wf-bundled.bin /opt/workfusion/haproxy/bin/haproxy
    /usr/sbin/setcap CAP_NET_BIND_SERVICE=+eip /opt/workfusion/haproxy/bin/haproxy
    #Allow haproxy binary to run under unprivileged user on privileged ports (below 1025):
  5. Copy Cyrus packages into respective directories on both Masters and Agents.

    cp -r /opt/workfusion/wf_installer/sources/cyrus_sasl_md5_rhel8 /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/cyrus_sasl_scram_rhel8 /opt/workfusion/tmp_sources/

    cd /opt/workfusion/tmp_sources/

    rpm -Uvh --nodeps cyrus-sasl-md5-2.1.27-6.el8_5.x86_64.rpm
    rpm -Uvh --nodeps cyrus-sasl-scram-2.1.27-6.el8_5.x86_64.rpm
  6. Create and enable a swap file (on Masters only).

    dd if=/dev/zero of=/wf_ram.swap  bs=1M  count=16000
    mkswap /wf_ram.swap
    echo "/wf_ram.swap none swap sw 0 0" >> /etc/fstab
    swapon -a
    swapon -s (verify that swap is enabled)
  7. Set sysctl parameters on all Linux servers as described in the Run additional root steps | Privileged users can't run third-party script section.

  8. Configure sysctl parameters for Elasticsearch (on Masters only).

    cat << EOF > /etc/sysctl.d/elasticsearch.conf
    vm.max_map_count=262144
    EOF

    sysctl -p /etc/sysctl.d/elasticsearch.conf
  9. Copy RPM packages into respective directories (on Masters only).

    cp -r /opt/workfusion/wf_installer/sources/zip-3.0-23.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/unzip-6.0-43.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/unzip-6.0-43.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/sshpass-1.06-9.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/libicu-60.3-2.el8_1.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/logrotate-3.14.0-4.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/openssl-libs-1.1.1k-6.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/make-4.2.1-10.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/compat-openssl10-1.0.2o-3.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cp -r /opt/workfusion/wf_installer/sources/socat-1.7.4.1-1.el8.x86_64.rpm /opt/workfusion/tmp_sources/

    cd /opt/workfusion/rpms

    rpm2cpio '/opt/workfusion/tmp_sources/zip-3.0-23.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/unzip-6.0-43.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/unzip-6.0-43.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/sshpass-1.06-9.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/libicu-60.3-2.el8_1.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/logrotate-3.14.0-4.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/openssl-libs-1.1.1k-6.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/make-4.2.1-10.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/compat-openssl10-1.0.2o-3.el8.x86_64.rpm' | cpio -idmv
    rpm2cpio '/opt/workfusion/tmp_sources/socat-1.7.4.1-1.el8.x86_64.rpm' | cpio -idmv
  10. Copy RPM packages for Marathon (on Masters only).

    cp -r /opt/workfusion/wf_installer/sources/systemd-marathon-1.7.50.661979ed2-SNAPSHOT.noarch.rpm /opt/workfusion/tmp_sources

    cd /opt/workfusion/marathon

    rpm2cpio '/opt/workfusion/tmp_sources/systemd-marathon-1.7.50.661979ed2-SNAPSHOT.noarch.rpm' | cpio -idmv
  11. Copy RPM packages for RabbitMQ (on Masters only).

    cp -r /opt/workfusion/wf_installer/sources/erlang-24.3.4.4-1.el8.x86_64.rpm /opt/workfusion/tmp_sources/
    cd /opt/workfusion/erlang
    rpm2cpio '/opt/workfusion/wf_installer/sources/erlang-24.3.4.4-1.el8.x86_64.rpm' | cpio -idmv

    cp -r /opt/workfusion/wf_installer/sources/ncurses-compat-libs-6.1-7.20180224.el8.x86_64.rpm /opt/workfusion/tmp_sources/