No meu emprego atual, muitas vezes me perguntam sobre o uso do PowerCLI para realizar diversas tarefas em um cluster vCenter. Nesta postagem, vou compartilhar como aprendi a importar um arquivo OVF no VMware.

Esta é uma história sobre um pedido recente de ajuda de um colega que precisava exportar um modelo de appliance de monitoramento personalizado para um novo cluster vCenter que estava sendo construído. Meu colega estava sob pressão de tempo e não tinha acesso necessário ao modelo.
Se você ainda não o fez, certifique-se de baixar o módulo PowerCLI via Install-Module -Name PowerCLI
Conectando-se ao vCenter
Nunca querendo perder a oportunidade de usar PowerShell ou PowerCLI, mergulhei de cabeça para ajudar. Coletando as informações necessárias do meu colega, comecei a me conectar ao cluster:
Isso leva apenas um momento para ser concluído. Depois de conectado, você precisa saber quais verbos usar. Você pode fazer isso usando o cmdlet Get-Command -Module PowerCLI
.
Há dois cmdlets que se destacam:
Export-VApp
Import-VApp
Ambos esses cmdlets parecem ser exatamente o que você precisa. Mas primeiro, como esta é uma experiência de aprendizado para mim e talvez para você, vou me educar um pouco mais sobre o uso adequado de cada um.
Exportando VMs para um Arquivo OVF
O cmdlet Export-VApp
exportará a VM desligada como um OVF para o diretório atual da sua sessão por padrão, caso não especifique um caminho.
I already have a path in mind so I’m going to be using the C:\Exported-OVF directory but yours may vary. Knowing this, you can then run Export-VApp
against the VM template specifying the destination folder.
Mas há um problema. Você não pode exportar uma VM em execução para um OVF. Sem problemas, isso tem uma solução rápida. Modifique seu código um pouco mais e certifique-se de primeiro desligar a VM usando o cmdlet Shutdown-VMGuest
.
Com o appliance do modelo agora offline, retome a execução do cmdlet Export-VApp
que foi tentado anteriormente. Esse processo levará alguns minutos e o appliance não era muito grande desde o início.
Ao concluir, você deverá ter um appliance pronto para ser implantado em outro ambiente do vCenter. Ou não?
Importando Arquivos OVF
Agora você deve ter um arquivo em seu sistema de arquivos local. Está tudo bem importá-lo. Para fazer isso, você precisará consultar o datastore para importá-lo juntamente com o host da VM. Você pode então usar ambos os objetos para passar para o cmdlet Import-Vapp
e importá-lo.
Mas espere! Isso não funciona. No meu caso, falhou porque não percebi que estava realmente conectando a outro cluster do vCenter.
Algo aconteceu quando comecei a importar o appliance VM previamente exportado. Um mar de mensagens de erro em vermelho.
I read the error message, and sure enough, the host is not a part of a vCenter cluster and therefore does not have proper licensing to complete the import using PowerCLI. This is a limitation that VMware enforces.
Sem problemas, ainda pude me conectar à interface web do host e importar manualmente usando a interface HTML5. O assistente guia você por cada etapa, dá um nome ao appliance importado, escolhe o OVF, datastore, tipo de implantação (provisionamento espesso ou fino) e verifica a configuração. Depois disso, selecione Concluir e a importação começará.
Enquanto a tentativa de importação anterior funcionaria muito bem com um cluster vCenter, simplesmente não funcionaria nesta situação. Isso levou um pouco mais de tempo do que o esperado, mas foi direto ao ponto. Você pode ler mais sobre o processo aqui.
No final, a importação foi um sucesso, e meu colega cumpriu o prazo.
Resumo
Até este exercício, eu não estava ciente de que nem todos os cmdlets do PowerCLI estavam disponíveis em todas as situações. No entanto, ambos aprendemos uma nova habilidade e, apesar de enfrentarmos algumas adversidades inesperadas, ainda concluímos a tarefa em questão.
Muitas vezes, corremos através de projetos de TI procurando a solução ‘rápida’. Atente para sua velocidade, reserve mais um minuto ou dois para fazer perguntas, dar um passo atrás e entender o problema que está tentando resolver. Você pode descobrir que aprenderá algo novo.