Appendix E: Integrating with Existing Enterprise System Management : vCloud Director Notifications and Blocking Tasks Messages : VIX API
   
VIX API
The VMware VIX API enables automation of virtual machine operations, and libraries are available for C, Perl, and COM. Programs or scripts making use of the VIX API are referred to as VIX clients. Common use cases for VIX API virtual machine operations include:
*Performing power operations (start, stop, suspend, resume) on a virtual machine.
*Performing VMware Tools installation (some manual intervention may be required).
*Resetting passwords.
*Killing system processes.
*Cleaning up temporary log files.
*Installing/configuring software inside the guest operating system.
*Copying files to or from the guest operating system.
If performing operations that can affect the file system or execute programs within a guest operating system, the VIX client must authenticate with the guest operating system. The VIX client provides a username and password that can be authenticated as a valid user account by the guest operating system.
VIX clients may run programs or scripts within a guest operating system. This capability can be used to install software, run maintenance tasks, and trigger actions based on complex event processing. When installing software using the VIX API, having the ability to install the software in an unattended and/or scripted fashion simplifies the process.
Because VIX API virtual machine operations use VMware Tools as the communication path to the guest operating system, an available network connection is not required. This allows VIX clients to run programs or scripts and perform other configuration tasks before a network connection is made available by the guest operating system.
Private vCloud and managed services providers often require agent-based software to be installed and configured in the guest operating system of virtual machines. Public vCloud providers having additional value-add capabilities may also require agent-based software and/or the ability to perform customization of virtual machine guest operating system configuration elements.
Agent-based software examples include:
*Backup/restore.
*Performance monitoring.
*Virus scanners.
Customization of software within a virtual machine may be possible through scripts or programs executed within the guest operating system. A VIX client can execute these scripts or programs using command line arguments to pass values to the script or program. As an example, consider the public vCloud provider that:
*Provides NAS storage as a value-add service.
*Has a portal that allows configuration and provisioning of the storage for consumption by client virtual machines running in the vCloud.
*Automatically configures the guest operating system to mount the storage and makes the mount consistent across reboots.
In large environments where complex events are occurring in systems linked by infrastructure services or application components, it may be necessary to have a centralized workflow system that can trigger tasks within virtual machine guest operating systems. vCenter Orchestrator has a VIX plugin that extends the workflow capabilities in vCenter Orchestrator all the way to the guest operating system within a virtual machine.