Working with complex applications and AppStacks
From time to time we all come across that extremely complicated application that an organization needs packaged and of-course it has a lot of moving parts. This blog entry I am walking through the process that has proven to work successfully instead of the typical packaging style where if you make a mistake you are back at ground-zero. One key thing to keep in mind when going through this entry is the ‘disposable VM’. I consider a disposable virtual machine an App Volumes Provisioning that will eventually become contaminated and you will not be able to revert to a clean-state using a snapshot.
Note: Not utilizing a 'disposable' provisioning machine will place your normal provisioning machine at-risk. The very end of this process involves removing ALL snapshots from the virtual machine.
1. Prepare a ‘disposable’ provisioning machine. This virtual machine will lose all its snapshots when we finish this process so it’s best not to use your typical provisioning machine.
2. Point the App Volumes Manager to the Provisioning VM to start the provisioning process.
3. Install any prerequisite applications such as Java, etc.
4. Power-down the Provisioning VM and take a snapshot, using this as more of a bookmark in case we need to go back. The snapshot process will capture all the VM elements including the attached App Volume VMDK file as long as we still where in provisioning mode when we powered-down the virtual machine.
5. Power-on the VM and continue installing any core applications or your target application. One step my application required was an installation of SQL Express w/ an imported database. I installed SQL Express during this step.
6. Powered-down the Provisioning machine once SQL was cleanly installed and created another snapshot
7. Powered-on the provisioning VM and create any custom databases and accounts etc.
8. Power-down VM once you have completed all your installs and are ready to complete the App Volumes capture process.
9. Edit the VM’s snapshots (VM > Snapshot > Snapshot Manager) and ‘Remove All Snapshots‘.
10. Once the VM’s snapshots have all been remove, we need to consolidate the redo logs. VM > Snapshot > Consolidate
11. Once consolidation has completed, power-on the VM
12. Select ‘OK’ on the App Volumes dialog box to complete the provisioning process and let the VM reboot
13. Login to the VM and you should have the message that provisioning has finished successfully. Select ‘Ok’
14. Provisioning is now complete and the VMDK should successfully detach from the VM.
Once you complete these steps I recommend a lot of testing to validate that the application is performing as expected.