Resolution
Building a Parallels Virtual Appliance is similar to installing software, but it requires much more attention to detail. Thorough configuration allows more flexible integration into the existing virtual infrastructure and delivers more usable solution to customers.Three keys to successfully building a virtual appliance are:
Making sure your virtual appliance presents a comprehensive solution for the targeted tasks
Making the virtual appliance installation as simple as possible
Making sure that the virtual appliance update procedure will not affect the user's data
To the user, a virtual appliance is a "black box", which provides services that can be controlled with the help of a suitable interface. The user should be able to start, stop, or move the virtual appliance to any physical computer with minimal effort.
Each virtual appliance is completely isolated and self-contained within the virtual environment. It will perform exactly the same, regardless of the operating system, preferences, networking type or application set of the host machine.
Disk Requirements
Virtual appliance's hard disks must have enough space for guest OS, applications, logs, and the user's data files. The logs, if any, must be rotated regularly.
Ideally, you should create three virtual hard disks for your virtual appliance:
First disk - is bootable and contains the guest OS and core application files. It should be as small as possible.
Second disk - contains the user's and application's data.
Third disk - a "swap" disk. If the swap space is on a separate disk, it is easier to change the amount of memory allocated for the virtual appliance.
NOTE: The first disk is the only one that should be upgraded. Do not store any user’s data on this disk. Any file meant to be modified by the user must be placed on the second disk.
Name the disks accordingly for future reference. For example, app.hdd for the first disk, data.hdd - for the second one, and swap.hdd for the third. Such virtual appliance configuration enables the user to perform updates by replacing only app.hdd virtual disk or by moving the data.hdd one to the new version of the virtual appliance.
Software Requirements
For optimum efficiency:
The guest OS must be installed in a minimal configuration. Only those components or features necessary for the target service or application to operate successfully should be installed.
The software installed inside the virtual appliance should not use the 16-bit programming mode as it may result in dramatic performance losses.
To create a minimal configuration of the guest OS, either:
Build the virtual appliance from scratch with minimal required configuration, including the OS kernel and libraries necessary for the virtual appliance's applications, or
Install the guest OS in the standard way. Remove unused features, OS locale settings, documents, and unnecessary applications. Install the target application or service.
NOTE: You should provide an update feature for your virtual appliance with all of the necessary documentation. Activation of this feature should be optional, but updating itself may be configured to be performed automatically.
Interface Requirements
A virtual appliance must have a well documented and clearly understandable administration interface. The user must be able to use this interface to start, stop and configure the virtual appliance.
Do not use GUI-based interfaces unless the virtual appliance's design requires one as this interface consumes additional resources. You can use a text console to execute only a minimal set of necessary commands, such as start, stop and reboot the virtual appliance.
We recommend using both a text console inside the virtual appliance with basic functionality and a full-featured web-based administration interface. Ideally, if the one will be accessible by secure protocol HTTPS, and the address will be displayed on the virtual appliance console when its booting process is complete:
Administration Interface is available at: https://<IP-address>:<port>/
It's recommended that you support your virtual appliance and provide the necessary updates for it. However, if you do not plan to support your virtual appliance, you must provide full management capability and allow full access with administrator's rights to the virtual appliance’s operating system to enable a user to control and configure it.
Network Configuration Requirements
Use a DHCP server for initial network configuration of the virtual appliance by default. Enable the user to change network settings later through the virtual appliance's administration interface.
Protect the virtual appliance by firewall for best security, and close any unused network ports or services.
You may use SNMP to monitor virtual appliance parameters and to gather statistic from it.
Packaging Requirements
Pack virtual appliance as a self-contained archive.
Archive all virtual appliance's files into a single file.
Use zip format whenever possible.
If necessary, divide the archive file into several volumes for easier download.
The archive must contain:
The .pvs configuration file
Virtual disk(s) files
Virtual appliance's description document
All documentation that the end-user will need
To create the virtual appliance's description document it is recommended to use the template available here.