Infra - Virtualização
Automatizando a Criação de uma Máquina Virtual Usando Modelos do VMM2012
Este artigo exibirá a criação e configuração de um Modelo de máquina virtual do VMM 2012.
por Leandro CarvalhoIntrodução
Automatização!
Esta é uma palavra que define uma das melhores qualidades do System
Center Virtual Machine Manager 2012 (VMM Server).
Em alguns ambientes é normal o uso de políticas para disponibilizar um servidor como pré-requisitos, instalação e configuração e outras que são necessárias, mas que toma muito tempo para serem cumpridas. Para uma instalação básica do Windows, incluindo atualização geralmente precisamos de 4 horas, mas com essas políticas as vezes demoram dias. Compatibilidade e requisitos de hardware, aplicações, configurações e atualizações são alguns exemplos da burocracia que pode existir durante a instalação de um servidor. Uma das funcionalidades do VMM Server para resolver este dilema é a criação de templates (modelos) de máquinas virtuais, possibilitando a instalação e a configuração automatizada de servidores.
Com isso podemos reduzir drasticamente o tempo para liberar um servidor e automatizar todos esses processos de uma forma simples e sem complicação.
No exemplo abaixo você verá como instalar e configurar um servidor de SQL Server usando um desses modelos, possibilitando sua instalação com alguns cliques, além de instalar e configurar aplicações e bancos de dados automaticamente.
Configuração
Para criar um template de máquina virtual (VM), abra o console de administração do VMM Server, clique em Library e depois em Create VM Template. A figura 1 mostra com detalhe esta opção, além de alguns Templates que foram previamente criados.
Figura 1 – Create VM Template
Na tela inicial para criação deve-se escolher a origem pela qual o template será criado. É possível usar um template existente, um disco virtual (VHD) com o sistema pré-instalado ou até mesmo uma máquina virtual que está sendo usada em algum host. Na demostração da figura 2 foi selecionado um VHD com a instalação padrão do Windows 2008 R2 e os arquivos de instalação do SQL. Selecione a base que for melhor para seu ambiente e clique em Next.
Figura 2 – Template Source
Na tela de identificação escolha um nome e a descrição do template e clique em Next.
Figura 3 – Identificação do Template
Na tela Configure Hardware é preciso especificar o hardware, como por exemplo o disco, a rede, memória, processador, etc. Esta configuração será usada cada vez que a VM for criada com base no template. Com a opção de criação e gerenciamento de Private Clouds (nuvem privada) no VMM2012, é preciso escolher em Cloud Compatibility o perfil que o template poderá ser usado. Caso ele não for especificado será impossível usar o modelo para instalação de um servidor que será hospedado na nuvem privada.
Figura 4 – Configuração de Hardware
Para ajudar na automatização durante a criação de um template ou até mesmo uma máquina virtual, use a opção de salvar a configuração de Hardware como um Hardware Profile (Perfil de Hardware). A figura 4 mostra alguns perfis que foram criados anteriormente.
Figura 5 – Perfil de Hardware
Em Configure Operating System poderemos oferecer algumas informações para a instalação automatizada do Windows, como nome do computador, chave de produto, senha de administrador local, sistema operacional, dentre outras. Perceba na figura 6 que o nome do computador acaba com os símbolos “##”. Com isso a nomenclatura será baseada com uma sequência numérica sempre que o template for utilizado. Para criar um nome aleatoriamente use o símbolo “*”.
Nesta tela também existe a opção de salvar essas configurações como Guest Operating System Profile (Perfil de sistema operacional convidado). Esses perfis ajudarão muito na administração diária do VMM. A lista abaixo mostra os perfis que podem ser criados no VMM 2012:
· Application Profiles
· Capability Profiles
· Guest OS Profiles
· Hardware Profiles
· Host Profiles
· SQL Profiles
Escolha as opções de acordo com seu modelo e clique em Next.
Figura 6 – Configurações do sistema operacional
No VMM2012 existe uma novidade quando o sistema operacional usado no template é Windows 2008 ou Windows 2008 R2. Durante a instalação do Sistema Operacional (SO) o template automaticamente instalará as Roles (papéis) e/ou Features (funcionalidades) do servidor. Na figura 7 foram selecionados alguns pré-requisitos do SQL Server como exemplo.
Figura 7 – Roles e Features
Depois da instalação do SO é possível instalar e configurar algumas aplicações através da tela Configure Applications. Ao clicar em Add são exibidas 5 opções:
· SQL data tier Application
· Virtual Application
· Web Application
· Application Script
· Script
Com este novo recurso, após a instalação do DNS por exemplo, é possível especificar um script usando o comando dnscmd para criar e configurar uma zona no servidor; criar e configurar uma aplicação web usando a opção Web Application; etc. Para instalar aplicações virtuais do Server App-V, selecione Virtual Application.
Para o uso de Scripts existem 4 opções, oferecendo a possibilidade de executá-los antes ou após a instalação ou remoção de algo:
· Pre-Install
· Post-Install
· Pre-Uninstall
· Post-Uninstall
Como o template criado neste exemplo será usado para um SQL Server, foram adicionados 4 SQL data tier application, oferecendo assim várias pré-configurações do serviço.
Figura 8 – Adicionando uma nova aplicação
Na última tela, em Configure SQL Server também poderemos especificar as informações da instalação, configuração e contas de serviços, caso o SQL seja usado como base do template ou for um pré-requisito para outra aplicação. Observe na figura 9 que as opções de instalação como nome, nome e ID da instância e outros detalhes foram previamente configuradas.
Figura 9 – Instalação do SQL Server
Na figura 10 são exibidas outras configurações do SQL Server como caminho de instalação, conta de administrador, modo de segurança, etc. Escolha as opções desejadas e clique em Next.
Figura 10– Configuração do SQL Server
Confira as informações em Summary e clique em Create para finalizar o processo.
Para usar as mesmas opções fornecidas para automatização de criação de templates através do PowerShell, clique em View Script.
Veja abaixo o exemplo de script para criar o mesmo template:
# ------------------------------------------------------------------------------
# New VM Template Wizard Script
# ------------------------------------------------------------------------------
# For additional help on cmdlet usage, type get-help <cmdlet name>
# ------------------------------------------------------------------------------
New-VirtualDVDDrive -VMMServer HVServer.Contoso.msft -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315 -Bus 1 -LUN 0
New-SCVirtualNetworkAdapter -VMMServer HVServer.Contoso.msft -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315 -PhysicalAddressType Dynamic
Set-VirtualCOMPort -NoAttach -VMMServer HVServer.Contoso.msft -GuestPort 1 -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315
Set-VirtualCOMPort -NoAttach -VMMServer HVServer.Contoso.msft -GuestPort 2 -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315
Set-VirtualFloppyDrive -RunAsynchronously -VMMServer HVServer.Contoso.msft -NoMedia -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315
$CPUType = Get-CPUType -VMMServer HVServer.Contoso.msft | where {$_.Name -eq "3.60 GHz Xeon (2 MB L2 cache)"}
New-HardwareProfile -VMMServer HVServer.Contoso.msft -Owner "CONTOSO\Administrator" -CPUType $CPUType -Name "Profileb702d92a-9502-45c3-a1c3-a9b13719ed91" -Description "Profile used to create a VM/Template" -CPUCount 1 -MemoryMB 512 -DynamicMemoryEnabled $true -DynamicMemoryMaximumMB 4056 -DynamicMemoryBufferPercentage 20 -MemoryWeight 5000 -VirtualVideoAdapterEnabled $false -ExpectedCPUUtilization 20 -DiskIO 0 -NetworkUtilization 0 -RelativeWeight 100 -HighlyAvailable $false -NumLock $false -BootOrder "CD", "IdeHardDrive", "PxeBoot", "Floppy" -LimitCPUFunctionality $false -LimitCPUForMigration $false -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315
$profile = Get-SCApplicationProfile -ID "01097427-3f6e-4c6a-97ff-04df3069a6c5"
$sourceProfile = Get-SCApplicationProfile -ID "01097427-3f6e-4c6a-97ff-04df3069a6c5"
$profile = New-SCApplicationProfile -Name "Application Profile ac705e68-5dba-473d-8bc6-5e0b247eead5" -ApplicationProfile $sourceProfile
$profile
$sourceProfile = Get-SCSQLProfile -ID "ed53a278-8c23-4686-aa29-2a2533b32fa3"
$profile = New-SCSQLProfile -Name "SQL Profile b010c8ee-6beb-4d45-86d0-9c7b8ce25401" -SQLProfile $sourceProfile
$profile
$deployment = Get-SCSQLDeployment -SQLProfile $profile -Name "SQL Server"
$saRunAsProfile = Get-SCRunAsProfile -Name "SQLAdminRAP"
$reportingRunAsProfile = Get-SCRunAsProfile -Name "NTSystemRAP"
$agentRunAsProfile = Get-SCRunAsProfile -Name "NTSystemRAP"
$serviceRunAsProfile = Get-SCRunAsProfile -Name "NTSystemRAP"
Set-SCSQLDeployment -SQLDeployment $deployment -Name "SQL Server" -MediaSource "C:\SQLEVAL" -InstanceID "DEFAULTSQL" -InstanceName "MSSQLSERVER" -DeploymentTimeoutSeconds 3600 -SQLAuthenticationType "SQLServerAuthentication" -EnableNamedPipes $true -EnableTCP $true -SQLSysAdminMemberList @("CONTOSO\Administrator") -ProductKey $null
$VirtualHardDisk = Get-SCVirtualHardDisk -VMMServer HVServer.Contoso.msft | where {$_.Location -eq "\\HVServer.Contoso.msft\MSSCVMMLibrary\PetShop Sample Resources\VHD\Windows Server 2008 R2 Enterprise Evaluation.VHD"} | where {$_.HostName -eq "HVServer.Contoso.msft"}
New-VirtualDiskDrive -VMMServer HVServer.Contoso.msft -IDE -Bus 0 -LUN 0 -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315 -VirtualHardDisk $VirtualHardDisk -VolumeType BootAndSystem
$UserRole = Get-SCUserRole -VMMServer HVServer.Contoso.msft | where {$_.Name -eq "Administrator"}
$HardwareProfile = Get-SCHardwareProfile -VMMServer HVServer.Contoso.msft | where {$_.Name -eq "Profileb702d92a-9502-45c3-a1c3-a9b13719ed91"}
$OperatingSystem = Get-SCOperatingSystem -ID a4959488-a31c-461f-8e9a-5187ef2dfb6b | where {$_.Name -eq "64-bit edition of Windows Server 2008 R2 Enterprise"}
$ApplicationProfile = Get-SCApplicationProfile -VMMServer HVServer.Contoso.msft | where {$_.Name -eq "Application Profile ac705e68-5dba-473d-8bc6-5e0b247eead5"}
$SQLProfile = Get-SCSQLProfile -VMMServer HVServer.Contoso.msft | where {$_.Name -eq "Temporary SQL Profile b010c8ee-6beb-4d45-86d0-9c7b8ce25401"}
New-SCTemplate -Name "SQL Server VM Template" -RunAsynchronously -UserRole $UserRole -Description "SQL Server VM template with a basic SQL configuration with a default instance called MSSQLSERVER." -Owner "CONTOSO\Administrator" -HardwareProfile $HardwareProfile -JobGroup 284f7982-b2f1-4514-9cfb-72afeb032315 -ComputerName "SPSQLServer##" -TimeZone 4 -JoinWorkgroup "WORKGROUP" -AnswerFile $null -OperatingSystem $OperatingSystem -ApplicationProfile $ApplicationProfile -SQLProfile $SQLProfile
Pronto, agora já poderemos criar as máquinas virtuais com base no template. Para isso, clique em VMsand Services e depois em CreateVirtual Machine, conforme figura 12.
Figura 12– Criando uma nova máquina virtual
Na primeira tela do Wizard, clique em Browse e uma lista com os templates será exibida (figura 13). Escolha o template que foi criado, confirme as opções e clique em Create.
A instalação do Windows, do SQL e das aplicações serão efetuadas sem nenhuma intervenção.
Figura 13– Opção para escolher o Template durante a criação da máquina virtual
Confira o resultado abaixo na máquina virtual em produção com o SQL instalado e configurado:
Figura 14– Máquina virtual criada com base no template
No próximo artigo você verá como criar um template de serviço.
- Instalando o VMware ESXi 5Virtualização
- O que é o Citrix EdgeSight ServerVirtualização
- Impacto da indisponibilidade de software na eficiência das empresasVirtualização
- Arquitetura para Ambientes com Windows Server 2008 Hyper-V – Parte 3Virtualização
- Você gosta de compartilhar conhecimento?Virtualização