Search

Jiffy Upgrade to 4.8.2

Articles

Supported Upgrade Versions

The following Jiffy versions can do a direct upgrade to version 4.8.2.

  1. Jiffy Automate 4.7.0
  2. Jiffy Automate 4.7.1
  3. Jiffy Automate 4.7.2
  4. Jiffy Automate 4.8
  5. Jiffy Automate 4.8.2

Artifact list

Name Version Type Description
jiffy-playbook.tar.gz 4.8.2 Ansible playbook Ansible scripts which does the upgrade
jiffy-upgrade.tar.gz 4.8.2 Compressed tar Jiffy core artifacts
jiffy-helms-v4.8.2.zip 4.8.2 Compressed zip Helm charts

Upgrade Prerequisites

  1. Stop Jiffy application.
    1. Log in to the core server shell.
    2. Switch to jiffy application user.
    3. Stop the application.

      1. application stop all
      2. application stop vault

  2. Backup the Postgresql, and MongoDB databases.
    1. For Jiffy and GUS postgres backups (Commands will prompt for DB password):

      1. pg_dump -h {DB hostname} -p 5432 {jiffy-schema-name} -U {username} | gzip > {filename.gz}
      2. pg_dump -h {DB hostname} -p 5432 {gus-schema-name} -U {username} | gzip > {filename.gz}

    2. For mongoDB backup
      Self Hosted:
      1. Connect to the mongoDB server
      2. Switch to jiffy application user

        mongodump --ssl --host {MongoDB hostname} --port 27017 --sslPEMKeyFile {Keyfile the certificate is a combination of ca+cert> } --sslAllowInvalidCertificates --authenticationDatabase admin -u admin --out {filename.dump}

        Command will prompt for DB admin password.
  3. Backup Postgresql Data directory, MongoDB Data directory, Vault data directory

Pre-Upgrade steps

  1. Connect to the core server.
  2. Switch to the jiffy application user.
  3. Download the artifact files:
    1. Scheduler Migration (JFS-7713: Applicable only if 4.8.1 upgrade is skipped)
    2. Download helm charts.

      1. export JIFFY_INSTALL=“/tmp/jiffy-install/4.8.2/”
      2. mkdir -p $JIFFY_INSTALL/helm/
      3. cd $JIFFY_INSTALL/helm/
      4. wget –user {username} –ask-password downloads.jiffy.ai/4.8.2/Upgrade/jiffy-helms-v4.8.2.zip

    3. Extract the helm charts in jiffy core server.

      unzip jiffy-helms-v4.8.2.zip

    4. Download ansible-playbook and upgrade artifact.

      1. cd $JIFFY_INSTALL
      2. wget –user {username} –ask-password downloads.jiffy.ai/4.8.2/Upgrade/jiffy-playbook.tar.gz
      3. wget –user {username} –ask-password downloads.jiffy.ai/4.8.2/Upgrade/jiffy-upgrade.tar.gz

    5. Extract ansible-playbook and upgrade artifact.

      1. tar -xf jiffy-playbook.tar.gz
      2. tar -xf jiffy-upgrade.tar.gz -C $JIFFY_INSTALL/upgrade/

  4. Fill in the inventory file and variable.yml file as per requirement (use the existing files or parameters from the previous/last installation as reference)
    1. The inventory file contains all the details of the servers, authentication methods, etc.
    2. variable.yml file contains all the parameters such as the username, custom application parameters, mount point, etc.

Backup

The following steps will cover code backup, in case of rollback to a previously installed version.

  1. Switch to root user in the core server
  2. Activate the Ansible Python virtual environment.
    Applicable only, if Ansible is installed under python virtual environment.

    source /opt/jiffy3rdparty/ansibleEnv/bin/activate

  3. Start backup process:

    1. export JIFFY_INSTALL="/tmp/jiffy-install/4.8.2/"
    2. cd $JIFFY_INSTALL
    3. ansible-playbook pre-upgrade/root.yml -i inventory -e @variable.yml

    For debug mode

    ansible-playbook pre-upgrade/root.yml -i inventory -e @variable.yml -v

    For detailed debug mode:

    ansible-playbook pre-upgrade/root.yml -i inventory -e @variable.yml -vvvv

  4. Change ownership of /tmp/jiffy-install to jiffy application user.

    chown -R {jiffyapp linux user}:{jiffyapp linux user group} /tmp/jiffy-install

  5. Switch to the jiffy application user
  6. Activate the ansible python virtual environment.
    Applicable only, if ansible is installed under python virtual environment

    source /opt/jiffy3rdparty/ansibleEnv/bin/activate

  7. Run the non-root installer : (Sample variable and inventory file below)

    ansible-playbook pre-upgrade/non-root.yml -i inventory -e @variable.yml

    For debug mode:

    ansible-playbook pre-upgrade/non-root.yml -i inventory -e @variable.yml -v

    For detailed debug mode:

    ansible-playbook pre-upgrade/non-root.yml -i inventory -e @variable.yml -vvvv

Upgrade procedure

Mail pre-requisite

  1. Switch to the jiffy application user
  2. Activate the ansible python virtual environment Applicable only, if Ansible is installed under python virtual environment

    source /opt/jiffy3rdparty/ansibleEnv/bin/activate

  3. Run the non-root installer : (Sample variable and inventory file below)

    • export JIFFY_INSTALL=“/tmp/jiffy-install/4.8.2/”
    • cd $JIFFY_INSTALL
    • ansible-playbook pre-req-mail.yml -l core -e @variable.yml

    For debug mode:

    ansible-playbook pre-req-mail.yml -l core -e @variable.yml -v

    For detailed debug mode:

    ansible-playbook pre-req-mail.yml -l core -e @variable.yml -vvvv

Core Upgrade

  1. Switch to root user in the core server.
  2. Activate the ansible python virtual environment.
    Applicable only, if ansible is installed under python virtual environment.

    source /opt/jiffy3rdparty/ansibleEnv/bin/activate

  3. Execute the playbook to begin the upgrade.

    1. export JIFFY_INSTALL="/tmp/jiffy-install/4.8.2/"
    2. cd $JIFFY_INSTALL
    3. ansible-playbook upgrade/root.yml -i inventory -l core -e @variable.yml

    For debug mode:

    ansible-playbook upgrade/root.yml -i inventory -l core -e @variable.yml -v

    For detailed debug mode:

    ansible-playbook upgrade/root.yml -i inventory -l core -e @variable.yml -vvvv

    For sudo and ssh password prompt add -kK options along with run command:

    ansible-playbook upgrade/root.yml -i inventory -l core -e @variable.yml -kK

  4. Change ownership of /tmp/jiffy-install to jiffy application user.

    chown -R {jiffyapp linux user}:{jiffyapp linux user group} /tmp/jiffy-install

  5. Switch to the jiffy application user.
  6. Activate the ansible python virtual environment.
    Applicable only, if Ansible is installed under python virtual environment.

    source /opt/jiffy3rdparty/ansibleEnv/bin/activate

  7. Run the non-root installer.

    • export JIFFY_INSTALL="/tmp/jiffy-install/4.8.2/"
    • cd $JIFFY_INSTALL
    • ansible-playbook upgrade/non-root.yml -i inventory -l core -e @variable.yml
    For debug mode:

    ansible-playbook upgrade/non-root.yml -i inventory -l core -e @variable.yml -v

    For detailed debug mode:

    ansible-playbook upgrade/non-root.yml -i inventory -l core -e @variable.yml -vvvv

  8. Execute the below ansible command to update application configuration changes.
    with masterkey prompt:

    ansible-playbook jiffyconfiguration.yml -l core -e @variable.yml

    without masterkey prompt:

    ansible-playbook jiffyconfiguration.yml -l core -e masterKey='{replaceme}' -e @variable.yml

  9. Start the application.

    application start all

Kubernetes Upgrade

  1. Connect to Core server.
  2. Execute the following commands.

    1. export JIFFY_INSTALL="/tmp/jiffy-install/4.8.2/"
    2. cd $JIFFY_INSTALL/helm/
    3. chmod 777 k8s-upgrade.sh

  3. Switch to jiffy application user.
  4. Execute the script for Kubernetes upgrade. Default values for the Kubernetes upgrade script.

    • namespace(n)=jiffy-cognitive
    • replicacount(r)=1
    • mountpoint(m)=/opt

  5. Uninstall the existing docplit container from the cluster.

    helm uninstall docplit -n {namespace}

    ./k8s-upgrade.sh -k '{masterkey|mandatory}' -n {namespace} -c {clusterDNS|mandatory} -r {replicacount} -m {mountpoint}

Drill HEAP and MAX Memory

As the jiffy application user, execute the below commands to modify/apply DRILL_MEMORY parameters

  • #!/bin/bash
  • sed -i 's/^#export DRILL_HEAP=${DRILL_HEAP:-"4G"}/export DRILL_HEAP=${DRILL_HEAP:-"8G"}/g' $DOCUBE_HOME/drill/conf/drill-env.sh
  • sed -i 's/#export DRILL_MAX_DIRECT_MEMORY=${DRILL_MAX_DIRECT_MEMORY:-"8G"}/export DRILL_MAX_DIRECT_MEMORY=${DRILL_MAX_DIRECT_MEMORY:-"16G"}/g' $DOCUBE_HOME/drill/conf/drill-env.sh
  • application stop all
  • application start all

Verify the DRILL_MAX_HEAP_MEMORY on the drill configuration file.

cat $DOCUBE_HOME/drill/conf/drill-env.sh

Testing

Verification:

  • Connect to core server.
  • Switch to jiffy application user.
  1. Verify jiffy version by running the following command in the core server. Version should be 4.8.2.

    cat $JIFFY_HOME/productversion.txt

  2. Verify jiffy client version by running the following command in the core server. Version should be 4.8.1.13.

    cat $JIFFY_HOME/data/client/setup/version.txt

  3. Verify configuration in the application properties file.
    1. anthill.properties ($JIFFY_HOME/properties/)
    2. mangrove.properties ($JIFFY_HOME/properties/)
    3. coral.properties ($JIFFY_HOME/properties/)
    4. application.properties ($GUS_HOME/)
    5. app.properties ($JIFFY_HOME/)
  4. Check uptime and status of jiffy core application processes

    supervisorctl status

  5. Check pod status.

    kubectl get pods -n {namespace}

  6. Check Vault status.

    vault status

Smoke Test

  1. Connect to Bot Machine.
    1. Right-click on the Bot Manager bottom right and Press **Check for updates**.
    2. Click the **check for updates** button to upgrade bot machine.
  2. Connect to jiffy application URL.
  3. Log in to tenant.
    1. Run the below tasks (if available):
      1. Doc node
      2. Web node
      3. Excel node
      4. Add new secrets to vault and verify vault status.
      5. Add dataset

Roll-Back

  1. Switch to Jiffy Application User.

    application stop all

Database Restore

  1. Restore gus,jiffy Postgres schemas from backup.
  2. Restore Mongo DB from backup.

Code Restore

  1. Code backup is stored in $JIFFY_HOME/uploads/backup folder. Backup folders are available for each component.
    1. Anthill
    2. Mangrove
    3. Coral
    4. Zeus
    5. jiffy-web
    6. fileserver
    7. gusbe
    8. gusfe
    9. data-client-engine
    10. connectors
    11. docube-web
    12. jiffy-commons
    13. Sentry
  2. Restore these backup folders to the original location.
  3. Restore properties from backup folder.
  4. Start application.

    application start all

Click here to learn more about the command for Code Restore and Properties Restore.

Did you find what you were looking for?