I was wondering if there is a way to remotely deploy custom software inside one (or multiple) virtual machine(s) by using API calls. The question is valid for both VMWare based and Xen based solutions. Something similar to the way VMWare Tools (or Xen Tools) are deployed inside a guest operating system. Thanks.
This is typically done via a configuration management system like SCCM (for Windows) or Puppet/Chef/CFengine (for Linux/BSD/etc.). If mounting an ISO image to the VM is a requirement for your situation (like it is with VMware Tools), you could use VMware ESXi API calls to do that, and then kick off the install using one of the above systems. I'm not familiar with what functionality is exposed via the Xen API, but I have to assume that it's equivalent to what VMware ESXi offers.