Importar e Exportar Arquivos OVF: Mover VMs Entre Hospedeiros

No meu trabalho atual, muitas vezes me perguntam sobre o uso do PowerCLI para realizar várias tarefas em um cluster vCenter. Neste post, vou compartilhar como aprendi a importar um arquivo OVF no VMware.

OVF File

Esta é uma história sobre um pedido recente de assistência 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 ao vCenter

Nunca querendo perder a oportunidade de usar PowerShell ou PowerCLI, mergulhei de cabeça para ajudar. Reuni as informações necessárias com meu colega e comecei a me conectar ao cluster:

PS6> Connect-VIServer -Server vcenter.mydomain.local -Credential (Get-Credential)

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 isso é 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 Export-VApp cmdlet exportará a VM desligada como um OVF para o diretório atual da sua sessão por padrão, caso você 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.

PS6> Export-VApp -VM 'My_VM_Template' -Destination 'C:\Exported-OVF\'

Mas há um problema. Você não pode exportar uma VM em execução para um OVF. Sem preocupações, isso é fácil de corrigir. Modifique seu código um pouco mais e certifique-se de desligar a VM primeiro usando o cmdlet Shutdown-VMGuest.

PS6> Shutdown-VMGuest -VM 'My_VM_Template'

Com o appliance do modelo agora offline, retome a execução do cmdlet Export-VApp tentado anteriormente. Este processo levará alguns minutos e não era um appliance muito grande para começar.

Ao concluir, você deverá ter um appliance pronto para ser implantado em outro ambiente vCenter. Ou será que não?

Importando Arquivos OVF

Agora você deve ter um arquivo no seu sistema de arquivos local. Pode importá-lo sem problemas. Para fazer isso, será necessário 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.

PS6> $myDatastore = Get-Datastore -Name "MyDatastore1"
PS6> $vmHost = Get-VMHost -Name "MyHost"
PS6> $vmHost | Import-vApp -Source 'C:\Exported-OVF\My_VM_Template\My_VM_Template.ovf' -Datastore $myDatastore -Force

Mas espere! Isso não funciona. No meu caso, falhou porque não percebi que estava realmente conectado a outro cluster 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 preocupações, ainda consegui me conectar à interface web do host e importar manualmente usando a interface HTML5. O assistente orienta você por cada etapa, dá um nome ao appliance importado, escolhe o OVF, datastore, tipo de implantação (provisionamento espesso ou magro) e verifica a configuração. Depois disso, selecione Concluir e a importação começa.

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 PowerCLI estavam disponíveis em todas as situações. No entanto, ambos aprendemos uma nova habilidade e, enfrentando algumas adversidades inesperadas, ainda concluímos a tarefa em mãos.

Muitas vezes, corremos nos projetos de TI procurando a solução ‘rápida’. Controle 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.

Source:
https://adamtheautomator.com/ovf-file/