.. title:: Single Server Upgrade 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. .. include:: /install/offline_install_note.rst .. include:: image_warning.rst **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 .. code-block:: Bash sudo /opt/kasm/bin/stop * Execute the database backup utility .. parsed-literal:: sudo mkdir -p /opt/kasm/backups/ sudo bash /opt/kasm/|previous_release|/bin/utils/db_backup -f /opt/kasm/backups/kasm_db_backup.tar -p /opt/kasm/|previous_release|/ * Verify the presence and location of the database backup .. code-block:: Bash 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 :doc:`System Requirements <../install/system_requirements>` for details. * Download and extract the new installation media .. parsed-literal:: cd /tmp curl -O tar -xf kasm_release_*.tar.gz * Get the existing database password for use in the subsequent commands. .. parsed-literal:: sudo grep " password" /opt/kasm/|previous_release|/conf/app/api.app.config.yaml * Get the existing manager token for use in the subsequent commands. .. parsed-literal:: sudo grep "token" /opt/kasm/|previous_release|/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 -s `` .. code-block:: Bash sudo bash kasm_release/install.sh -D -Q -M **Modify Configs** * Copy the **server_id** and the **public_hostname** properties from the old agent to the new .. parsed-literal:: grep server_id /opt/kasm/|previous_release|/conf/app/agent.app.config.yaml grep public_hostname /opt/kasm/|previous_release|/conf/app/agent.app.config.yaml sudo vi /opt/kasm/|release|/conf/app/agent.app.config.yaml * Copy **manager_id** and **server_hostname** from the old configuration into the new .. parsed-literal:: grep manager_id /opt/kasm/|previous_release|/conf/app/api.app.config.yaml grep server_hostname /opt/kasm/|previous_release|/conf/app/api.app.config.yaml sudo vi /opt/kasm/|release|/conf/app/api.app.config.yaml * Copy the auto-generated nginx configs for any sessions that may exist on the Agent .. parsed-literal:: sudo cp /opt/kasm/|previous_release|/conf/nginx/containers.d/* /opt/kasm/|release|/conf/nginx/containers.d/ ---------------------------- **Restoring the Database.** Restore and update the database from the prior version * Ensure all Kasm services are stopped .. code-block:: Bash sudo /opt/kasm/bin/stop * Execute the database restore command .. parsed-literal:: sudo /opt/kasm/|release|/bin/utils/db_restore -f /opt/kasm/backups/kasm_db_backup.tar -p /opt/kasm/|release| * Perform an upgrade of the database schema .. parsed-literal:: sudo /opt/kasm/|release|/bin/utils/db_upgrade -p /opt/kasm/|release| * Install The Kasm |release| 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: .. parsed-literal:: tar xf --strip-components=1 -C /opt/kasm/|release|/conf/database/seed_data/ workspace_images/default_images_amd64.yaml For ARM (arm64) platforms: .. parsed-literal:: tar xf --strip-components=1 -C /opt/kasm/|release|/conf/database/seed_data/ workspace_images/default_images_arm64.yaml For x86 (amd64) platforms: .. parsed-literal:: sudo /opt/kasm/|release|/bin/utils/db_init -s /opt/kasm/|release|/conf/database/seed_data/default_images_amd64.yaml For ARM (arm64) platforms: .. parsed-literal:: sudo /opt/kasm/|release|/bin/utils/db_init -s /opt/kasm/|release|/conf/database/seed_data/default_images_arm64.yaml * Start the Kasm services .. code-block:: Bash sudo /opt/kasm/bin/start .. include:: upgrade_images.rst :start-line: 2