Eu não tenho experiência com o vma, mas suponho que ele tenha o vmware Perl SDK instalado para você (de acordo com este post virtualmente gueto deveria. Nele você tem muitos utilitários e acho que esse é o que você está procurando:
Se você não deseja inserir as credenciais todas as vezes, é necessário configurar o credendial store primeiro.
[edit] Na verdade, eu apenas tentei e, embora funcione, é muito lento, porque recebe todas as informações sobre cada entidade. Não é muito eficiente. Então, eu acabei de escrever um script bem pequeno e isso é tudo:
#!/usr/bin/perl
use strict;
use warnings;
use VMware::VIRuntime;
# read/validate options and connect to the server
Opts::parse();
Opts::validate();
Util::connect();
my $vm_views =
Vim::find_entity_views(view_type => 'VirtualMachine',
properties => ['name'], );
foreach my $view ( sort @$vm_views) {
print $view->{'name'}, "\n";
}
# disconnect from the server
Util::disconnect();
Isso pressupõe que você tenha um arquivo $ HOME / .visdkrc no lugar com as informações corretas:
VI_PROTOCOL=https
VI_SERVER=fqdn
VI_SERVICEPATH=/sdk
VI_USERNAME=username
VI_PASSWORD=pwd
E como você disse que tem o vma, todas as bibliotecas já devem estar lá para você. Este script me pega todos os vm's (apenas seus nomes em menos de 1 segundo). Se você não tiver uma CA no lugar e seu centro virtual tiver um certificado auto-assinado, você deverá definir esse envvar primeiro ou a biblioteca Perl lwp será bombardeada ao executar o script:
export PERL_LWP_SSL_VERIFY_HOSTNAME=0