Há muito tempo atrás, numa galáxia distante, comecei uma pós-graduação em perícia digital. O curso era uma avalanche de informação técnica sobre redes e segurança e estava tão relacionado ao meu trabalho do dia a dia quanto um curso de barista: Ambos são muito bacanas e podiam me trazer benefícios no ambiente de trabalho – quem não gosta de café na TI –, mas eu os faria apenas por interesse pessoal. No entanto, pouco antes de me matricular, descobri que o curso seria 90% em Linux e eu nunca havia mexido com esse pinguim.
Então, surgiu a necessidade de criar máquinas virtuais e a turma de perícia optou pelo Virtual Box. Confesso que me apeguei rapidamente ao VBox e, logo, estava usando ele em casa, no notebook e no trabalho. Pela linha de comando, ele é uma ferramenta flexível que atende muito bem às necessidades de um HomeLab. Através da interface gráfica, nem tanto.
Apesar disso, quando comecei a utilizar VMs para instalação de Failover Clustered Instances, me deparei com um bug da ferramenta. Sempre que as ferramentas de integração com o host (VirtualBox Guest Tools) estavam instaladas na VM, a instalação da FCI falhava. E é claro que muita gente deu de cara com esse bug [1]. Logo, como o meu foco era exatamente FCIs, resolvi tentar outra plataforma de virtualização.
O fato é que a maior ferramenta do mercado é a VMware. Porque não ir diretamente para ela? Depois do lançamento do PowerCLI [2], a integração entre host e guest era quase perfeita. Sem falar que ela sempre esteve no topo do mercado… Mas qual outra opção está próxima à VMware? O Gartner responde [3].

Fiquei tão surpreso de ver o Hyper-V em segundo lugar que fui pesquisar mais e descobri que ele tem crescido bastante nos últimos anos. E agora, Hyper-V ou VMware?
Em questão de compatibilidade, não tem o que comentar sobre o virtualizador da Microsoft. Com o crescimento dessa ferramenta nos últimos anos, fica difícil dizer que não vale investir o seu tempo nela. Apenas se ela tivesse algo como o PowerCLI…
HAIL POWERSHELL DIRECT!
Foi então que descobri a nova funcionalidade do powershell nos Windows 10 e Windows Server 2016: Powershell Direct [4]. Com ele, você é capaz de executar comandos diretamente nas VMs sem precisar de configuração de remote desktop, firewall ou rede… Não sei como demonstrar o quão simples e conveniente é este recurso senão através de um exemplo!
#Nome da VM $VmName = "WS2016-DC" #Credencial para logar na VM $VmCredential = Get-Credential -Credential "$VmName\administrator" #Executar comandos dentro da VM Invoke-Command -VMName $VmName -Credential $VmCredential -ScriptBlock { #Capturar o adaptador de rede $NetAdapter = Get-NetAdapter #Renomear para facilitar identificação $NetAdapter | Rename-NetAdapter -NewName "LAN_NIC" #Atribuir novo IP ao adaptador de rede New-NetIPAddress -InterfaceIndex $NetAdapter.ifIndex ` -AddressFamily "IPv4" ` -IPAddress "11.1.1.1" ` -PrefixLength "24" ` -DefaultGateway "11.1.1.1" #Configurar o endereço do DNS Set-DnsClientServerAddress -InterfaceIndex $NetAdapter.ifIndex -ServerAddresses "127.0.0.1" #Renomear a máquina Rename-Computer -NewName "WS2016-DC" -Restart }
Nesse script, estou entrando com as credenciais de administrador da minha VM – um prompt será exibido para que digite a senha – e usando o cmdlet “Invoke-Command” para rodar comandos diretamente na “WS2016-DC”. Tudo que está dentro de “ScriptBlock”, da linha 8 até a linha 27, será executado como se estivesse dentro do console do powershell da VM. Se você tem acompanhado a série de publicações do HomeLab, perceberá que o script executado é parte da configuração da minha domain controller [5]. Em outras palavras, preciso apenas criar a VM e posso realizar toda a configuração através do próprio host!
Depois de descobrir o Powershell Direct, as possibilidades são diversas! Hoje, tenho labs com diversas configurações de AlwaysOn (FCIs e AGs) completamente automatizadas, basta executar um script! Difícil é não se acostumar com as facilidades providas por este recurso… E é por isso que utilizo o Hyper-V hoje. E você, qual virtualizador usa?
LINKS
[2] https://blogs.vmware.com/PowerCLI/
[3] https://www.gartner.com/doc/reprints?ct=160707&id=1-3B9FAM0&st=sb
[5] https://comunidadesqlserver.wordpress.com/2017/01/02/homelab-crie-e-configure-um-dominio/