noch einen Schritt tiefer in die Architektur:
Die API vom ESX(i) bzw. vCenter ist ein WebService, SOAP-based. D.h., du kannst prinzipiell mit jeder programmiersprache dran ansetzen, die http und xml kann (was so ziemlich alle können).
Für JAva und .net gibts im SDK beispiele, um die zugehörigen Stubs zu generieren.
Allerdings ist das direkte Programmieren zu SOAP ziemlich mühselig, weil Du Dich selber um den ganzen XML und HTTP-Kram kümmern musst.
Deswegen gibts von VMware vorbereitet entsprechende Toolkits bzw. bibliotheken, die den ganzen SOAP-Kram übernehmen, sodass Du dann direkt vCenter-Objekte (z.B. VMs) als Objekte in Deiner Programmiersprache hast.
Und dazu gehören z.B. PowerCLI für Powershell, das Toolkit für Perl (auf dem die CLI basiert) oder das Toolkit für JAva.
Für die CLI gibts zusätzlich zu den perl-bibliotheken, mit denen Du komplett eigene scripte bauen könntest, eben noch eine reihe von fertigen scripten (die ganzen vicfg-xxxxx-befehle), die eben typische Aufgaben dann übernehmen.
(nachdem das alles in perl ist, kannst Du Dir sogar im installationsverzeichnis die Quelltexte dazu anschauen.
Bei der PowerCLI gibts auch für die meisten Anwendungsfälle fertige cmdlets, wenns zu irgendner api funktion noch nix gibt (war zb. lange zeit für die distributed Switches so), dann kann man mit Get-View immer noch direkt auf die API zugreifen.
Reinschauen lohnt sich auf jeden Fall, Du kannst so ziemliche alles skripten, was auch via vSphere Client "klickbar" ist.
Und zur Abkürzung:
http://labs.vmware.com/flins/onyx !!!!!
Viele Grüße,
Jörg