Criando VM´s com Vagrant

De MSTECH wiki
Revisão de 19h52min de 19 de julho de 2016 por Alexandre.borim (Discussão | contribs) (Exportando a VM)

Ir para: navegação, pesquisa

Versões de softwares utilizados para criação do manual

Versão Aplicação
6.3.9600.16384 Hyper-V
2012 R2 Standard Windows Server
1.7.2 Vagrant
3.0 Windows PowerShell

Introdução

Este documento visa apresentar o procedimento para preparação de máquinas virtuais usando a ferramenta Vagrant.
O Vagrant é uma ferramenta que permite que criemos rapidamente máquinas virtuais para fazermos testes, desenvolvimento ou provisionamento de ambientes utilizando as soluções de virtualização mais comuns como o Virtualbox e o Hyper-V.
Para a execução desta ferramenta, a interface é somente via prompt de comando.

Objetivo

Este manual tem como objetivo, se tornar uma espécie de consulta para os analistas de DevOps, assim como capacitar analistas que iniciarem na atividade de virtualização em quaisquer ambiente.

Execução

Criando uma VM zerada, com Windows 2012 R2 Standard

Checklist (padronização)
- Máquina Virtual (.vhdx) ter no máximo 45Gb para instalação do SO;
- Windows Server com as atualizações baixadas e instaladas;
- Instalar a feature .NET Framwork versões 3.5 e 4.5, pelo Add Roles e Features no Server Manager. Como da imagem abaixo.
caption

- Instalar a feature Windows PowerShell versões 3.0 e 2.0, pelo Add Roles e Features no Server Manager. Como da imagem abaixo.
caption

- Fazer um procedimento para desativar senha complexa. Para isso, vá pela VM e pressione as teclas caption + R e digite gpedit.msc. Em seguida, navegue em Computer Configuration -> Windows Settings -> Security Settings -> Account Policies -> Password Policy e clique 2x na regra Password must meet complexity requirements. Selecione para desabilitar essa regra e clique em OK.
- Configurar WinRM, que é uma ferramenta de linha de comando projetado para criar e controlar as conexões remotas. Para isso, abre uma console do PowerShell na VM (clicando com o botão direito sobre este aplicativo e selecionar Run as Administrator) e digite as três linhas de comando citada abaixo.
winrm set winrm/config/client/auth '@{Basic="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
- Habilitar conexões Remote Desktop. Para isso, abre uma console do PowerShell na VM (clicando com o botão direito sobre este aplicativo e selecionar Run as Administrator) e digite as duas linhas de comando citada abaixo.
$obj = Get-WmiObject -Class "Win32_TerminalServiceSetting" -Namespace root\cimv2\terminalservices
$obj.SetAllowTsConnections(1,1)
- Habilitar CredSSP (Credential SSP), que permite o uso do SSP (Suporte de Provedor de Segurança) do lado cliente para delegar as credenciais do usuário da máquina cliente ao servidor de destino. Para isso, abre uma console do PowerShell na VM (clicando com o botão direito sobre este aplicativo e selecionar Run as Administrator) e digite a linha de comando citada abaixo.
Enable-WSManCredSSP -Force -Role Server
- Habilitar regras RDP (protocolo de conexão remota) e WinRM no firewall. Para isso, abre uma console do PowerShell na VM (clicando com o botão direito sobre este aplicativo e selecionar Run as Administrator) e digite as duas linhas de comando citada abaixo.
Set-NetFirewallRule -Name WINRM-HTTP-In-TCP-PUBLIC -RemoteAddress Any
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP -Enabled True
- Alterar as políticas de execução do PowerShell. Para isso, abre uma console do PowerShell na VM (clicando com o botão direito sobre este aplicativo e selecionar Run as Administrator) e digite a linha de comando citada abaixo.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Exportando a VM

Nesta etapa, mostraremos como proceder para exportar a VM já criada, configurada e atualizada.
- A primeira coisa, é necessário compactar no máximo a máquina virtual, usando o PowerShell como mostra a imagem abaixo.
PS C:\Windows\system32> Optimize-VHD -Path C:\<caminho do arquivo .vhdx> -Mode Full
Onde: <caminho do arquivo .vhdx> -> caminho onde está salvo o arquivo que corresponde a máquina virtual criada.
- Próximo passo, será exportar a VM para a caminho desejado, conforme mostra a imagem abaixo.
PS C:\Windows\system32> Export-VM -Name <nome_da_VM> -Path C:\<nome da pasta onde salvará a VM exportada>
Onde: <nome_da_VM> -> nome da VM, que consta na console do gerenciador de Hyper-V.
<nome da pasta onde salvará a VM exportada> -> caminho onde salvará a VM a ser exportada
- Após exportar a VM, próximo passo será remover a pasta Snapshots, que não será muito útil. Esta pasta foi gerada durante o processo de exportação e está dentro da pasta onde foi exportada a VM. Segue o comando abaixo em que remove a pasta.
PS C:\Windows\system32> Remove-Item D:\<nome da pasta onde foi salva a VM exportada>\Snapshots -Recurse -Force
Dentro da pasta onde foi exportada a VM, iremos criar 2 arquivos (metadata.json e Vagrantfile), faremos primeiro a criação do arquivo metadata.json pelo notepad e inserir a informação necessária dentro do arquivo conforme mostra a imagem abaixo.
{
 "provider": "hyperv"
}
- Na sequência, iremos criar o arquivo Vagrantfile e inserir a informação necessária dentro do arquivo conforme mostra a imagem abaixo.
# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.guest = :windows
  config.vm.communicator = "winrm"
end
- A estrutura dentro da pasta ficará conforme a imagem abaixo, com 2 pasta e 2 arquivos.

caption