Single Server Upgrade

Kasm Tech recommends installing a separate instance of the application, migrating the data and performing a cutover of the application.

Please read through the entire process before getting started.

Note

Kasm Workspaces can be installed on an offline system by doing an offline installation. This can be performed by first downloading the Workspace Images and Service Images from the Kasm Downloads and copying them to the system.

The path to the Service Images can be passed to the installer with the -s flag and the path to Workspace Images with the -w flag. e.g. sudo bash kasm_release/install.sh -w /tmp/kasm_release_workspace_images*.tar.gz -s /tmp/kasm_release_service_images*.tar.gz

Warning

The Kasm Workspaces 1.10.0 upgrade will install a new set of default desktop and application images. Please ensure 50GB of free space is available on the Kasm server ( or Agent role server for multi-server installations) prior to upgrading.

Create a Database Backup

Backup the existing Kasm database. This can be saved for later recovery, but will also be used to migrate existing data to the latest version.

  • Stop existing Kasm Services

sudo /opt/kasm/bin/stop
  • Execute the database backup utility

sudo mkdir -p /opt/kasm/backups/
sudo bash /opt/kasm/1.9.0/bin/utils/db_backup -f /opt/kasm/backups/kasm_db_backup.tar -p /opt/kasm/1.9.0/
  • Verify the presence and location of the database backup

sudo ls -al /opt/kasm/backups/kasm_db_backup.tar

Note

If you are performing an offline upgrade please ensure that you have downloaded and installed versions of docker and docker compose that meet the updated system requirements see System Requirements for details.

  • Download and extract the new installation media

cd /tmp
curl -O <release url>
tar -xf kasm_release_*.tar.gz
  • Get the existing database password for use in the subsequent commands.

sudo grep " password" /opt/kasm/1.9.0/conf/app/api.app.config.yaml
  • Get the existing manager token for use in the subsequent commands.

sudo grep "token" /opt/kasm/1.9.0/conf/app/agent.app.config.yaml

Perform a clean install

  • Install kasm from the release media downloaded in the prior steps.

    • When performing an offline update add these flags -w <KASM_WORKSPACE_IMAGES_TAR> -s <KASM_SERVICE_IMAGES_TAR>

sudo bash kasm_release/install.sh -D -Q <DATABASE_PASSWORD> -M <MANAGER_TOKEN>

Modify Configs

  • Copy the server_id and the public_hostname properties from the old agent to the new

grep server_id /opt/kasm/1.9.0/conf/app/agent.app.config.yaml
grep public_hostname /opt/kasm/1.9.0/conf/app/agent.app.config.yaml
sudo vi /opt/kasm/1.10.0/conf/app/agent.app.config.yaml
  • Copy manager_id and server_hostname from the old configuration into the new

grep manager_id /opt/kasm/1.9.0/conf/app/api.app.config.yaml
grep server_hostname /opt/kasm/1.9.0/conf/app/api.app.config.yaml
sudo vi /opt/kasm/1.10.0/conf/app/api.app.config.yaml
  • Copy the auto-generated nginx configs for any sessions that may exist on the Agent

sudo cp /opt/kasm/1.9.0/conf/nginx/containers.d/* /opt/kasm/1.10.0/conf/nginx/containers.d/

Restoring the Database.

Restore and update the database from the prior version

  • Ensure all Kasm services are stopped

sudo /opt/kasm/bin/stop
  • Execute the database restore command

sudo /opt/kasm/1.10.0/bin/utils/db_restore -f /opt/kasm/backups/kasm_db_backup.tar -p  /opt/kasm/1.10.0
  • Perform an upgrade of the database schema

sudo /opt/kasm/1.10.0/bin/utils/db_upgrade -p /opt/kasm/1.10.0
  • Install The Kasm 1.10.0 Default Images for your platform

    • If doing an offline upgrade first extract the default image seed data from the workspace images tar

      For x86 (amd64) platforms:

      tar xf <KASM_WORKSPACE_IMAGES_TAR> --strip-components=1 -C /opt/kasm/1.10.0/conf/database/seed_data/ workspace_images/default_images_amd64.yaml

      For ARM (arm64) platforms:

      tar xf <KASM_WORKSPACE_IMAGES_TAR> --strip-components=1 -C /opt/kasm/1.10.0/conf/database/seed_data/ workspace_images/default_images_arm64.yaml

For x86 (amd64) platforms:

sudo /opt/kasm/1.10.0/bin/utils/db_init -s /opt/kasm/1.10.0/conf/database/seed_data/default_images_amd64.yaml

For ARM (arm64) platforms:

sudo /opt/kasm/1.10.0/bin/utils/db_init -s /opt/kasm/1.10.0/conf/database/seed_data/default_images_arm64.yaml
  • Start the Kasm services

sudo /opt/kasm/bin/start

Update Custom Images

Each release, the Kasm Technologies team updates the default images with new features and security updates. The previous steps added the new default images to the upgraded system. Old images should be removed as they are not compatible with new Kasm features.

If you are running custom images, rebuild each image using the the latest image. (e.g : kasmweb/core-ubuntu-bionic:1.10.0 ) , and create a new Image entry in the Kasm UI. Do not re-use existing Image entries for custom images.

See Default and Custom Images for details.