Upgrade the Virtual Appliance in Microsoft Azure
Upgrade the Virtual Appliance in Microsoft Azure by replacing virtual machines and restoring backed-up data.
Upgrading the Virtual Appliance involves:
- Backing up and deleting the hard disks of the existing virtual machines.
- Deploying new virtual machines by using VHD 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
-
Follow the steps to upgrade the Virtual Appliance in Microsoft Azure.
Back Up the Virtual Appliance Data
Back up Virtual Appliance data before upgrading virtual machines in Microsoft Azure.
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.
Prepare the Microsoft Azure for the Upgrade
Prepare Microsoft Azure images, snapshots, and configuration details for the Virtual Appliance upgrade.
To upgrade virtual machines in Azure, you must create a image and snapshot from the new VHD. However, you can use the same Resource Group, Network Security Group, Virtual Network, and Storage Account that you have created at the time of deployment. See Deploy and Configure Virtual Machines in Microsoft Azure.
config.cfg such as tags, deployment configuration, and IP addresses. Run these scripts in the given order.
For more information about Azure CLI, see Azure CLI Documentation.
| Azure Resources | Description | Reference Scripts | |
|---|---|---|---|
| 1 | Disk |
Upload the VHD image to a storage account. Create a disk by using the URI of the VHD file. |
05-azure-create-disk.sh |
| 2 | Image Gallery |
An image is a copy of the disk. Image gallery is a place where you can store and share the image to create multiple virtual machines.
See See Store and share images in an Azure Compute Gallery. |
|
Upgrade the Virtual Appliance
Upgrade the Virtual Appliance in Microsoft Azure by running the required upgrade scripts in order.
Run the upgrade scripts in the given order:
| Step | Filename | |
|---|---|---|
| 1 | Obtain the details of the virtual machine. | 01-azure-get-vm-details.sh |
| 2 | Shutdown the virtual machine. | 02-azure-power-off-vm.sh |
| 3 | Associate a NIC to the virtual machine | 03-azure-associate-dummy-nic.sh |
| 4 |
Disassociate the NIC from the virtual machine. Detach the data disk from the virtual machine. |
04-azure-disassociate-nic-and-data-disk.sh |
| 5 | Delete the virtual machine. | 05-azure-delete-vms.sh |
| 6 | Create a virtual machine. | 06-azure-create-vms.sh |
Verify whether the data directories exist in the following location:
/var/appd/data
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.