Upgrade the Virtual Appliance in KVM
Upgrade the Virtual Appliance in KVM by deploying new virtual machines and restoring backed-up data.
Upgrading the Virtual Appliance involves:
- Backing up the hard disks of the existing virtual machines.
- Deploying new virtual machines by using QCOW2 image.
- Restoring the backup to their hard disks.
- Attaching the new hard disks to the older virtual machines
Splunk AppDynamics On-Premises Virtual Appliance provides the reference script that helps in upgrading the Virtual Appliance.
- Standard Deployment
- Hybrid Deployment
Standard Deployment
Follow the steps to upgrade the Virtual Appliance in KVM.
Back up the Virtual Appliance Data
Back up Virtual Appliance data before upgrading virtual machines in KVM.
Before you begin the upgrade, complete the following steps:
Generate a Backup File
Generate a backup file and save it outside the Virtual Appliance cluster.
Upgrade the Virtual Appliance
Upgrade the Virtual Appliance by running the upgrade script with the QCOW2 file and configuration file.
This script verifies the virsh
-
Stops the virtual machine.
-
Uploads the new
QCOW2image to the node storage pool. -
Deletes the OS disk image. However, it retains the data disk image.
-
Creates a new OS disk from the template image.
-
Starts the virtual machine.
Verify the Deployment Status
Verify the deployment status of Virtual Appliance virtual machines and services in VMware Esxi.
Verify the deployment of virtual machines:
Restore Data in the Virtual Appliance
Restore backed-up data to the Virtual Appliance after completing a VMware ESXi upgrade.
Generate the Hybrid Configuration File
Generate the hybrid configuration file when custom certificates are not used for Ingress and Kafka clusters.
Hybrid deployments only: Generate this file when custom certificates are not used for the Ingress and Kafka clusters
Ensure that you have the latest CA certificates obtained after installing services. If not, update the CA certificates and regenerate the hybrid configuration file after restarting the service.
Configure the Standalone Controller for Hybrid Connectivity
Complete these checks before running the script:
- Extract the generated hybrid-config archive on the Controller host.
- Run the script from inside the extracted hybrid-config directory.
-
Identify the actual Controller home: The directory containing db/, tools/, and appserver/.
Tip:/home/appdynamics/appdynamics/platform/controller. The suggested default is/opt/appdynamics/platform/product/controller, but the installation path can vary. - Obtain the DNS name configured as
hybrid.mysql.dbHostin the Virtual Appliance. - Use an account with permission to update the Controller and MySQL certificate files.
Controller home example: /home/appdynamics/appdynamics/platform/controller. The suggested default is /opt/appdynamics/platform/product/controller, but the installation path can vary.
Keystore password behavior: The script first tries the standard keystore password, changeit. If that password cannot open the existing Controller CA truststore, the script prompts securely for the configured password. Typed password characters are not displayed.
The selected password is used consistently for:
- The Kafka client truststore.
- The Schema Registry client truststore.
- The existing Controller CA truststore.
- The
truststore-passwordfields in the obfuscated producer and consumer configurations.
appserver/jetty/etc/cacerts.jks.
Changes made by the script:
| Item | Location relative to Controller home | Action |
|---|---|---|
| Kafka client truststore | pi-kafka-ssl-config/kafka.client.truststore.jks |
Created or replaced using kafka-ca.crt. |
| Schema Registry client truststore | pi-kafka-ssl-config/schema-registry.client.truststore.jks |
Created or replaced using schema-registry-ca.crt. |
| Controller CA truststore | appserver/jetty/etc/cacerts.jks |
Replaces the k8s-cluster alias with schema-registry-ca.crt. |
| Kafka client configurations | pi-kafka-ssl-config/AnomalyDetectionKafka* |
Writes obfuscated producer and consumer configuration. |
| MySQL server certificate | Database data directory from db/db.cnf |
Generates a 365-day certificate containing the supplied DNS SAN. |
If the configuration is successful, the following message will be displayed:
Hybrid Controller configuration completed successfully.
After the script completes successfully, restart the Controller and its MySQL service. The Controller truststore and MySQL certificate changes do not take effect until the affected services are restarted.
Restart the Standalone Controller
Restart the Standalone Controller and MySQL service after completing configuration changes.