Multi Server Upgrade¶
Stop all Kasm Services on all Servers
sudo /opt/kasm/bin/stop
Upgrade Database Server Role¶
Create a Database Backup
Stop existing Kasm Services
sudo /opt/kasm/bin/stop
Download and extract the new installation media
cd /tmp/
curl -O <release url>
tar -xf kasm_release_*.tar.gz
Execute the included database backup utility
sudo bash /tmp/kasm_release/bin/utils/db_backup -f /tmp/kasm_db_backup.tar -p /opt/kasm/1.7.0/
Get the existing database password for use in the subsequent commands.
sudo grep " password" /opt/kasm/1.7.0/conf/app/api.app.config.yaml
Perform a clean install
Perform a clean install of the Database Role Services
Install kasm from the release media downloaded in the prior steps.
sudo bash kasm_release/install.sh -S db -D -Q <DATABASE_PASSWORD>
Restore and upgrade 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.8.0/bin/utils/db_restore -f /tmp/kasm_db_backup.tar -p /opt/kasm/1.8.0/
Perform an upgrade of the database schema
sudo /opt/kasm/1.8.0/bin/utils/db_upgrade -p /opt/kasm/1.8.0
Advanced: Review the contents of the existing configs to ensure any custom docker settings are migrated to the new configuration.
diff /opt/kasm/1.7.0/docker/docker-compose.yaml /opt/kasm/1.8.0/docker/docker-compose.yaml
Install Kasm 1.8.0 Default Images
sudo /opt/kasm/1.8.0/bin/utils/db_init -s /opt/kasm/1.8.0/conf/database/seed_data/default_images.yaml
Start the Kasm services
sudo /opt/kasm/bin/start
Upgrade Web App Server Role¶
Stop existing Kasm Services
sudo /opt/kasm/bin/stop
Download and extract the new installation media
cd /tmp/
curl -O <release url>
tar -xf kasm_release_*.tar.gz
Install kasm from the release media downloaded in the prior steps.
sudo bash kasm_release/install.sh -S app -D -q <DATABASE_HOSTNAME> -Q <DATABASE_PASSWORD> -R [REDIS_PASSWORD]
Copy manager_id and server_hostname from the old configuration into the new
grep manager_id /opt/kasm/1.7.0/conf/app/api.app.config.yaml grep server_hostname /opt/kasm/1.7.0/conf/app/api.app.config.yaml sudo vi /opt/kasm/1.8.0/conf/app/api.app.config.yaml
Advanced: Review the contents of the existing configs to ensure any custom docker settings are migrated to the new configuration.
diff /opt/kasm/1.7.0/docker/docker-compose.yaml /opt/kasm/1.8.0/docker/docker-compose.yaml
Start the Kasm services
sudo /opt/kasm/bin/start
Upgrade Agent Server Role¶
Ensure all Kasm services are stopped
sudo /opt/kasm/bin/stop
Download and extract the new installation media
cd /tmp/
curl -O <release url>
tar -xf kasm_release_*.tar.gz
Get the existing manager token for use in the subsequent commands.
sudo grep "token" /opt/kasm/1.7.0/conf/app/agent.app.config.yaml
Install kasm from the release media downloaded in the prior steps.
sudo bash kasm_release/install.sh -S agent -D -p <AGENT_HOSTNAME> -m <MANAGER_HOSTNAME> -M <MANAGER_TOKEN>
Copy the server_id and the public_hostname properties from the old agent to the new
grep server_id /opt/kasm/1.7.0/conf/app/agent.app.config.yaml grep public_hostname /opt/kasm/1.7.0/conf/app/agent.app.config.yaml sudo vi /opt/kasm/1.8.0/conf/app/agent.app.config.yaml
Copy the auto-generated nginx configs for any Kasms that may exists on the Agent
sudo cp /opt/kasm/1.7.0/conf/nginx/containers.d/* /opt/kasm/1.8.0/conf/nginx/containers.d/
Advanced: Review the contents of the existing configs to ensure any custom docker settings are migrated to the new configuration.
diff /opt/kasm/1.7.0/docker/docker-compose.yaml /opt/kasm/1.8.0/docker/docker-compose.yaml diff /opt/kasm/1.7.0/conf/app/agent.app.config.yaml /opt/kasm/1.8.0/conf/app/agent.app.config.yaml
Start the Kasm services
sudo /opt/kasm/bin/start
Verify the Agent Service is properly checking in the the Management Service
sudo tail -f /opt/kasm/current/log/agent.log | grep "Successfully processed heartbeat\|Sending manager request"
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 kasmweb/core:1.8.0 image, 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.