Table of ContentsLab Overview - HOL-SDC-1607 - From Beginner to Advanced Features with PowerCLI .....2
Orientação de Laboratório ...................................................................................... 3Módulo 1: Dos recursos básicos aos avançados com o PowerCLI (60 minutos) ................6
Módulo de visão geral ............................................................................................ 7Introdução ao PowerShell e PowerCLI .................................................................... 8Uso do PowerCLI para emitir relatórios ................................................................ 13Exportação dos resultados do relatórios para diversos formatos .........................17Definição e configuração de um cluster ............................................................... 23Migração de hosts para o cluster ......................................................................... 26Definição e configuração de switch virtual distribuído .........................................27Criação de uma máquina virtual e sua movimentação entre os hosts usando ovMotion ................................................................................................................ 30Criação de várias máquinas virtuais e sua devida marcação ...............................32Modificação de várias máquinas virtuais com base em sua marcação ................38Configuração e implantação de um template OFV ............................................... 40Leitura detalhada ................................................................................................. 42
HOL-SDC-1607-PT-SPR
Page 1HOL-SDC-1607-PT-SPR
Lab Overview - HOL-SDC-1607 - From
Beginner to AdvancedFeatures with PowerCLI
HOL-SDC-1607-PT-SPR
Page 2HOL-SDC-1607-PT-SPR
Orientação de LaboratórioEste laboratório foi elaborado para usuários de Power CLI iniciantes até de nívelavançado.
Módulo - Características de PowerCLI desde Iniciantes à avançadas ( 60 minutos )
Este laboratório levará aproximadamente 60 minutos para ser completado.
Capitães do Laboratorio: Phil Balfanz, Paval Dimitrov, Pierre Grothe, Tom Lusk, CarlOlafson
Este manual pode ser descarregado ( downloaded ) a partir do link Hands-On LabsDocument conforme a seguir:
http://docs.hol.pub/HOL-2016/hol-sdc-1607_pdf_pt-br.pdf
Métodos alternativos de entrada de dados pelo teclado
NOTA: Se você estiver utilizando um dispositivo com Layout non-US, vocêpoderá encontrar dificuldades para entrar comandos CLI, nomes de usuários esenhas utilizados no módulo deste laboratório.
Ao invés de digitar diretamente, há dois métodos de introdução de dados bastante úteisque tornam mais fácil a inserção de dados complexos.
Clique e arraste o conteúdo do manual para dentro doConsole da janela principal ativa
<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><ahref="http://www.youtube.com/watch?v=xS07n6GzGuo" target="_blank">Try watching this video on www.youtube.com</a>, or enableJavaScript if it is disabled in your browser.</div></div>
HOL-SDC-1607-PT-SPR
Page 3HOL-SDC-1607-PT-SPR
Você também pode clicar e arrastar, textos e comandos "Command Line Interface ( CLI )diretamente do manual do laboratório para dentro do Console da janela principal ativa.
Acessando o Teclado Internacional Online
Você pode usar o teclado internacional online encontrado na Janela principal.
1. Clique no ícone do teclado encontrado na barra de tarefas rápidas do Windows.
Clique na janela ativa
Neste exemplo, você usará o teclado online para adicionar o caracter "@" usado emendereços de E-mail. O caracter "@" é inserido com as teclas "Shift-2" no tecladopadrão americano (US).
1. Clique uma vez sobre a janela ativa.2. Clique na tecla Shift.
HOL-SDC-1607-PT-SPR
Page 4HOL-SDC-1607-PT-SPR
Clique na tecla "@"
1. Clique na tecla "@".
Veja que o caracter "@" foi adicionado no Console da janela ativa.
HOL-SDC-1607-PT-SPR
Page 5HOL-SDC-1607-PT-SPR
Módulo 1: Dos recursosbásicos aos avançados
com o PowerCLI (60minutos)
HOL-SDC-1607-PT-SPR
Page 6HOL-SDC-1607-PT-SPR
Módulo de visão geralEste módulo apresentará você ao VMware vSphere PowerCLI. Os usuários novatosaprenderão a usar a ferramenta com facilidade, e os usuários mais avançados sefamiliarizarão com a nova funcionalidade disponível nas versões mais recentes doproduto, como a configuração de um OVA antes de sua implantação e a filtragem deobjetos de acordo com suas marcações. Tantos os usuários inexperientes como osexperientes certamente aprenderão algo novo.
HOL-SDC-1607-PT-SPR
Page 7HOL-SDC-1607-PT-SPR
Introdução ao PowerShell e PowerCLINesta lição, você aprenderá as noções básicas do PowerShell e PowerCLI. Vocêaprenderá como iniciar o console do PowerCLI e o PowerShell ISE, como listar oscomandos disponíveis e visualizar sua ajuda.
Inicialização do PowerCLI
Após a instalação, para iniciar o PowerCLI, basta clicar duas vezes no ícone do desktopdenominado "VMware vSphere PowerCLI". Isso abrirá o console do PowerShell ecarregará todos os módulos do PowerCLI.
Uso do Powershell ISE
Como alternativa ao console simples, você pode usar o editor de script do PowershellISE, que proporciona uma experiência melhor ao usuário. Você pode iniciar o editor
HOL-SDC-1607-PT-SPR
Page 8HOL-SDC-1607-PT-SPR
clicando duas vezes em seu ícone no desktop (1). O painel superior (2) é para exibição/edição dos arquivos de script e o painel inferior (3) é para a execução de comandosindividuais e exibição de sua saída (uma analógica do console PowerShell padrão).
HOL-SDC-1607-PT-SPR
Page 9HOL-SDC-1607-PT-SPR
Uso do Powershell ISE
Durante este laboratório, você executará vários comandos do PowerCLI no painelinferior do PowerShell ISE ou no console do PowerShell. Você mesmo pode digitar oscomandos ou copiá-los e colá-los usando os arquivos "Module7.ps1" localizados nodesktop. O modo mais prático de usar o laboratório é abrir o Module7.ps1 no painelsuperior do Powershell ISE. Esse arquivo contém todos os comandos que você usaráneste módulo. Cada comando pode ser selecionado (1) e executado pressionando F8(ou o botão "Run Selection" (2)). Antes de executar um novo comando, certifique-se deque o anterior esteja concluído. Você verá a mensagem "Completed" (3) na parteinferior do console.
Listagem dos comandos disponíveis
Vamos explorar o que é possível fazer com o PowerCLI. Os snapins do PowerCLIfornecem mais de 500 comandos (chamados cmdlets no PowerShell) para gerenciar ovSphere, vCloud Air, Site Recovery Manager, vRealize Operations e vSphere UpdateManager. Você pode exibir os comandos disponíveis no PowerCLI digitando:
HOL-SDC-1607-PT-SPR
Page 10HOL-SDC-1607-PT-SPR
Get-VICommand
Ele relaciona todos os comandos do PowerCLI. Como a lista é muito grande, você podedesejar restringi-la para algo mais específico. Por exemplo, todos os comandos paragerenciar máquinas virtuais:
Get-VICommand *VM
Dica: você pode usar o preenchimento automático para agilizar a digitação. Bastacomeçar a digitar o comando/parâmetro e pressionar "Tab".
Conexão com o vSphere
A primeira coisa que precisamos fazer para gerenciar o vCenter Server é conectá-lo.Isso é feito usando o comando Connect-VIServer. O vCenter é nomeado como"vcsa-01a" e você poderá conectá-lo do seguinte modo:
Connect-VIServer vcsa-01a -User corp\administrator -Password VMware1!
O comando conectará o vCenter com as credenciais de usuário especificadas.
Como obter ajuda
Se você não tiver certeza de como usar um cmdlet específico, poderá exibir facilmentesua ajuda digitando Get-Help (ou apenas sua abreviação: "help") e o nome do cmdlet:
help Connect-VIServer
Se você deseja visualizar a ajuda completa com usos de exemplo do cmdlet edescrições de parâmetro, deve abrir a ajuda completa do cmdlet:
help Connect-VIServer -Full
Se você deseja visualizar somente os exemplos, pode usar o switch -examples doseguinte modo:
HOL-SDC-1607-PT-SPR
Page 11HOL-SDC-1607-PT-SPR
help Connect-VIServer -Examples
Você também pode pesquisar uma palavra específica no arquivo inteiro da ajuda. Vamostentar pesquisar um cmdlet que movimenta máquinas virtuais com o vMotion:
help vmotion
O resultado contém o cmdlet de que precisamos: Move-VM. Usaremos esse recurso maistarde neste módulo.
Sinta-se à vontade para verificar na ajuda algum cmdlet que demonstramos nestelaboratório.
HOL-SDC-1607-PT-SPR
Page 12HOL-SDC-1607-PT-SPR
Uso do PowerCLI para emitir relatóriosCom mais de 100 cmdlets Get-*, o PowerCLI também é uma poderosa ferramenta deemissão de relatórios. Nesta lição, você aprenderá mais sobre o uso do PowerCLI.
HOL-SDC-1607-PT-SPR
Page 13HOL-SDC-1607-PT-SPR
Recuperação de máquinas virtuais
Uma das ações mais comuns é listar as máquinas virtuais no vCenter Server. Isso é útilpara navegar pelo inventário e gerar relatórios, bem como processar detalhadamentemáquinas virtuais específicas (ex. modificação de máquinas virtuais em lote). Você poderecuperar todas as máquinas virtuais com:
Get-VM
Você também pode recuperar uma ou mais máquinas virtuais pelo nome. Experimentefazer o seguinte:
Get-VM linux-CPU-Load-01a
Get-VM linux*
HOL-SDC-1607-PT-SPR
Page 14HOL-SDC-1607-PT-SPR
Recuperação de propriedades específicas de um objeto
Quando você chama um cmdlet (como o Get-VM), o resultado obtido é um objeto ouarray de objetos (neste caso, é um objeto de máquina virtual). Para visualizar quaispropriedades os objetos têm, você pode usar o cmdlet Get-Member do seguinte modo:
Get-VM linux-CPU-Load-01a | Get-Member -MemberType property
Isso listará todas as propriedades disponíveis do objeto da máquina virtual.
Observação: nós usamos aqui uma funcionalidade do PowerShell chamada "pipeline"(ou "piping"). Na verdade, o cmdlet Get-Member tem um parâmetro chamado"InputObject" que aceita objetos de máquina virtual (e também todos os outros objetosdo PowerShell). Em vez de recuperar as máquinas virtuais, armazená-las em umavariável e enviá-las para esse parâmetro do Get-Member, nós simplesmente"canalizamos" a saída do Get-VM para o Get-Member. Dessa forma, a saída do primeirocmdlet torna-se a entrada do segundo.
Então, você pode usar o comando 'select' do PowerShell para recuperar somente aspropriedades de que você precisa do objeto resultante:
Get-VM linux-CPU-Load-01a | Select Name, NumCPU, MemoryMB, PowerState, VMHost
HOL-SDC-1607-PT-SPR
Page 15HOL-SDC-1607-PT-SPR
Filtragem de resultados de relatórios
Quando o cmdlet Get-* não tem parâmetro para filtrar os objetos pela propriedade deque você precisa, é possível usar o comando 'where' do PowerShell para filtrar osresultados de uma chamada de cmdlet:
Get-VM | Where {$_.Powerstate -eq "PoweredOn"} | Select Name, NumCPU, MemoryMB, PowerState, VMHost
Dica: $_ é uma variável reservada do Powershell que contém o objeto atual do pipeline
HOL-SDC-1607-PT-SPR
Page 16HOL-SDC-1607-PT-SPR
Exportação dos resultados dorelatórios para diversos formatosPara apresentar os dados para seu gerente ou outra equipe ou para transferi-los paraoutro sistema que sua empresa usa, você precisa deles formatados de alguma maneira.Nesta lição, você aprenderá como exportar os dados, gerados pelos relatórios do
PowerCLI, em diversos formatos diferentes (txt, csv, xml, html).
HOL-SDC-1607-PT-SPR
Page 17HOL-SDC-1607-PT-SPR
Exportação no formato txt
Vamos começar com a exportação mais básica: arquivo txt. Para exportar o relatório noformato txt, use o cmdlet Out-File do PowerShell:
Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | Out-File c:\myPowerCLIReport.txt
Abra o arquivo de texto para verificar o resultado.
HOL-SDC-1607-PT-SPR
Page 18HOL-SDC-1607-PT-SPR
Exportação no formato csv
Agora vamos exportar os mesmos dados no formato csv. Vamos usar o cmdlet Export-Csv para fazer isso:
Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | Export-Csv c:\myPowerCLIReport.csv -NoTypeInformation
Verifique o resultado no arquivo csv.
HOL-SDC-1607-PT-SPR
Page 19HOL-SDC-1607-PT-SPR
Exportação no formato xml
O próximo formato que você exportará será XML. O cmdlet do PowerShell que usaremosserá ConvertTo-Xml. Como esse cmdlet retorna o objeto XMLDocument, precisamoschamar o método Salvar para gravar os dados formatados no arquivo:
(Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | ConvertTo-Xml -NoTypeInformation).Save("c:\myPowerCLIReport.xml")
Verifique o resultado no arquivo xml.
HOL-SDC-1607-PT-SPR
Page 20HOL-SDC-1607-PT-SPR
Exportação no formato HTML
Você também pode exportar os dados no formato HTML usando o cmdlet ConvertTo-Html. Como este comando apenas formata os dados em HTML, você também precisarádo cmdlet Set-Content para gravar os dados formatados no arquivo:
Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | ConvertTo-Html | Set-Content "c:\myPowerCLIReport.html"
Agora vá até a pasta 'c:\' e abra o relatório.
HOL-SDC-1607-PT-SPR
Page 21HOL-SDC-1607-PT-SPR
Adição de formatação na página HTML
Para que o relatório em HTML tenha uma aparência melhor, podemos aplicar algunsestilos a ele do seguinte modo:
$a = "<style>"$a = $a + "BODY{background-color:Gainsboro;}"$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"$a = $a + "TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:SkyBlue}"$a = $a + "TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:PaleTurquoise}"$a = $a + "</style>"Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | ConvertTo-Html -head $a | Set-Content "c:\myPowerCLIReport.html"
Se você abrir o relatório agora, verá que ele está com uma aparência muito melhor
HOL-SDC-1607-PT-SPR
Page 22HOL-SDC-1607-PT-SPR
Definição e configuração de um clusterNas próximas lições, você configurará um pequeno ambiente virtual de uma empresafictícia, a Nephosoft. Você começará criando e configurando um cluster. Em seguida,você configurará a rede criando e configurando um switch virtual distribuído (VDS,virtual distributed switch). No final, você criará várias máquinas virtuais com base emuma especificação predefinida, marcará devidamente essas máquinas virtuais e faráuma atualização em lote de várias especificações de máquina virtual com base em suasmarcações. Nesta lição, iniciaremos com as informações sobre como criar e configurarum cluster com o PowerCLI. Você definirá suas configurações EVC, HA e DRS.
Criação de um cluster
Para criar um novo cluster, usaremos o novo cmdlet New-Cluster. Temos que especificaro nome e o local do novo cluster:
$cluster1 = New-Cluster -Name "Nephosoft Cluster 1" -Location "Datacenter Site A"
Configuração do modo Enhanced vMotion Compatibility docluster
Agora vamos configurar o modo Enhanced vMotion Compatibility do cluster paraassegurar a compatibilidade da CPU com o vMotion. Para fazer isso, primeiramentevamos determinar quais modos EVC são suportados por nossos hosts:
$evcModes = Get-VMHost | Select MaxEVCMode
Agora inspecione o conteúdo da variável $evcModes. Basta digitar o nome da variável($evcModes) e seu valor será impresso na tela. Você notará que os dois hosts têm omesmo modo EVC.
Observação: o modo EVC pode ser diferente daquele ilustrado na captura de tela acima,porque ele depende do hardware físico em que o ambiente de laboratório é executado.
Vamos definir esse modo EVC para o cluster a fim de garantir que nenhum outro host,que venha a ser adicionado futuramente ao cluster, seja igual a este modo EVC:
Set-Cluster $cluster1 -EVCMode $evcModes[0].MaxEVCMode
Quando o sistema solicitar confirmação, clique em Yes.
HOL-SDC-1607-PT-SPR
Page 23HOL-SDC-1607-PT-SPR
Dica: a solicitação de confirmação é boa para uso interativo, entretanto, ela éindesejada nos scripts, pois ela os interromperá. Você pode confirmar automaticamentea operação anexando o parâmetro "-Confirm:$false" à sua chamada de cmdlet.
Ativação do HA no cluster
A próxima etapa é ativar o HA no cluster para garantir que as máquinas virtuais sejamprotegidas em caso de falha do host:
Set-Cluster $cluster1 -HAEnabled:$true -Confirm:$false
HOL-SDC-1607-PT-SPR
Page 24HOL-SDC-1607-PT-SPR
Ativação de DRS no cluster e definição das configuraçõesdo DRS
Agora vamos ativar o DRS neste cluster e definir seu nível de automação como"manual" para fazer com que ele gere recomendações para o posicionamento e amigração da máquina virtual (você pode recuperar e aplicar essas recomendações comos cmdlets Get-DrsRecommendation e Apply-DrsRecommendation):
Set-Cluster $cluster1 -DRSEnabled:$true -DRSAutomationLevel "Manual" -Confirm:$false
HOL-SDC-1607-PT-SPR
Page 25HOL-SDC-1607-PT-SPR
Migração de hosts para o clusterNesta lição, você aprenderá como mover os hosts para o cluster que foi criado.
Migração de hosts para o cluster
Para mover os hosts para o novo cluster, precisamos colocá-los primeiramente no modode manutenção. Para colocá-los no modo de manutenção, temos que antes desligartodas as máquinas virtuais em execução. Portanto, vamos recuperar todas as máquinasvirtuais em execução e, em seguida, desligá-las:
$vmsToStop = Get-VM | Where {$_.Powerstate -eq "PoweredOn"}
Stop-VM $vmsToStop -Confirm:$false
Agora vamos colocar os hosts no modo de manutenção:
Get-VMHost | Set-VMHost -State Maintenance
Depois usaremos o cmdlet Move-Host para mover os hosts para o cluster:
Get-VMHost | Move-VMHost -Destination $cluster1
E, por fim, vamos tirar os hosts do modo de manutenção:
Get-VMHost | Set-VMHost -State Connected
HOL-SDC-1607-PT-SPR
Page 26HOL-SDC-1607-PT-SPR
Definição e configuração de switchvirtual distribuídoNesta lição, você aprenderá como criar um switch distribuído e migrar a rede de hostpara esse switch.
Criação de VDS (switch virtual distribuído)
Iniciaremos criando um VDS com o cmdlet New-VDSwitch:
$vds = New-VDSwitch -Name "Nephosoft VDS" -Location "Datacenter Site A"
Você pode verificar o conteúdo da variável $vds.
Adição de hosts ESX ao VDS
A próxima etapa será adicionar os dois hosts ESX ao switch distribuído:
Add-VDSwitchVMHost -VDSwitch $vds -VMHost esx-01a.corp.local, esx-02a.corp.local
Você pode verificar se os hosts ESX foram adicionados com sucesso ao switchdistribuído:
Get-VMHost -DistributedSwitch $vds
Criação de port groups distribuídos
Agora vamos criar port groups para as redes de gerenciamento, armazenamento,vMotion e máquina virtual com os cmdlets New-VDPortGroup:
HOL-SDC-1607-PT-SPR
Page 27HOL-SDC-1607-PT-SPR
$pgManagement = New-VDPortGroup $vds -Name "management"$pgvMotion = New-VDPortGroup $vds -Name "vMotion"$pgStorage = New-VDPortGroup $vds -Name "storage"$pgVM = New-VDPortGroup $vds -Name "VM"
Você pode verificar se os port groups foram criados com sucesso:
Get-VDPortGroup -VDSwitch $vds
Migração de rede de host para o VDS
Migraremos um host de cada vez da rede de hosts. Primeiro, salvaremos os dois hostsem uma variável:
$hosts = Get-VMHost esx-01a.corp.local, esx-02a.corp.local
Em seguida, migraremos a rede para cada um deles usando o loop foreach doPowerShell. Para cada host, primeiramente recuperaremos suas NICs físicas e, depois,suas NICs de gerenciamento, armazenamento e VMKernel do vMotion. Então, osmigraremos juntos usando o cmdlet Add-VDSwitchPhysicalNetworkAdapter e, ao mesmotempo, especificaremos os port groups distribuídos para cada nic do VMKernel com oparâmetro VirtualNicPortGroup:
foreach ($vmhost in $hosts) {$pNics = Get-VMHostNetworkAdapter -VMHost $vmhost -Physical$vNicManagement = Get-VMHostNetworkAdapter -VMHost $vmhost -Name vmk0$vNicStorage = Get-VMHostNetworkAdapter -VMHost $vmhost -Name vmk1$vNicvMotion = Get-VMHostNetworkAdapter -VMHost $vmhost -Name vmk2Add-VDSwitchPhysicalNetworkAdapter -DistributedSwitch $vds -VMHostPhysicalNic $pNics -VMHostVirtualNic $vNicManagement,$vNicStorage,$vNicvMotion -VirtualNicPortGroup $pgManagement,$pgStorage,$pgvMotion -Confirm:$false
}
HOL-SDC-1607-PT-SPR
Page 28HOL-SDC-1607-PT-SPR
Migração de rede de máquina virtual para o VDS
No final, vamos migrar também a rede da máquina virtual. Primeiro, obteremos osadaptadores de rede de todas as máquinas virtuais:
$vmNetworkAdapters = Get-VM | Get-NetworkAdapter
Depois, migraremos esses adaptadores de rede para o port group da "máquina virtual"que criamos na etapa anterior:
Set-NetworkAdapter -NetworkAdapter $vmNetworkAdapters -Portgroup $pgVM -Confirm:$false
Agora o tráfego da rede de todas as máquinas virtuais vai passar pelo VDSwitch.
HOL-SDC-1607-PT-SPR
Page 29HOL-SDC-1607-PT-SPR
Criação de uma máquina virtual e suamovimentação entre os hosts usando ovMotionNesta lição, você aprenderá como criar uma máquina virtual e a moverá usando ovMotion entre dois hosts no cluster.
Criação de uma máquina virtual do zero
Vamos começar criando uma máquina virtual com o cmdlet New-VM. Especificaremos onome da máquina virtual, o disco rígido, o tamanho da memória, o host e o datastoreem que desejamos criá-la. Além disso, especificaremos que o port group da rede damáquina virtual esteja no switch distribuído, criado anteriormente. Colocaremos amáquina virtual em nosso datastore NFS, que é compartilhado entre os dois hosts.
$vm = New-VM -Name 'jsmith' -VMHost esx-01a.corp.local -DiskGB 10 -MemoryMB 512 -Datastore ds-site-a-nfs01 -Portgroup $pgVM
Vamos iniciar essa máquina virtual:
$vm | Start-VM
Movimentação da máquina virtual entre os hosts usando ovMotion
Agora vamos mover a máquina virtual para o outro host para deixar a carga de trabalhodistribuída de modo mais uniforme:
Move-VM $vm -Destination esx-02a.corp.local
Observação: se este não for o primeiro módulo que você está fazendo nesta sessão,talvez você esteja com alguns datastores desconectados em seu ambiente. Nesse caso,você receberá um erro informando que o Move-VM não pode acessar a configuração damáquina virtual. Se isso acontecer, você terá que reconectar o datastore NFS em um deseus hosts. Para isso, usaremos o cmdlet Get-EsxCli:
Recupere o EsxCLli para esx-02a.corp.local:
HOL-SDC-1607-PT-SPR
Page 30HOL-SDC-1607-PT-SPR
$esxCli = Get-EsxCli -VMhost esx-02a.corp.local
Verifique se o datastore NFS não está acessível:
$esxCli.storage.nfs.list()
...Accessible : false...
Desconecte o datastore NFS:
$esxCli.storage.nfs.remove('ds-site-a-nfs01')
Reconecte o datastore NFS:
$esxCli.storage.nfs.add('10.10.20.60', $false, $false, '/mnt/NFSA', 'ds-site-a-nfs01')
Se for necessário, repita o mesmo procedimento para o esx-01a.corp.local.
Dica: como a operação Move-VM pode ser muito demorada, convém mover asmáquinas virtuais de maneira assíncrona e continuar seu trabalho nesse meio tempo.Você pode fazer isso especificando o parâmetro -RunAsync do Move-VM. Muitos outroscmdlets que podem demorar muito para concluir a ação também suportam o -RunAsync.
HOL-SDC-1607-PT-SPR
Page 31HOL-SDC-1607-PT-SPR
Criação de várias máquinas virtuais esua devida marcaçãoNesta lição, você aprenderá como criar várias máquinas virtuais com o PowerCLI deacordo com uma especificação salva no arquivo csv. Você também marcará asmáquinas virtuais de acordo com a mesma especificação.
Verificação da especificação
Antes de tudo, vamos revisar a especificação que seguiremos ao criar as máquinasvirtuais. Abra o arquivo "vmspec.csv" localizado em seu desktop. Para cada máquinavirtual, temos o nome, o tamanho da memória (em MB), o tamanho do disco (em GB), odepartamento e o tipo (máquina virtual do usuário ou do servidor).
HOL-SDC-1607-PT-SPR
Page 32HOL-SDC-1607-PT-SPR
Leitura das informações de um arquivo csv em um array
Agora vamos importar esse arquivo para uma variável do PowerShell:
$spec = Import-Csv 'C:\Users\Administrator\Desktop\vmspecs.csv'
Inspecione o conteúdo da variável $spec. Você descobrirá que ele contém um array deobjetos (um objeto para cada máquina virtual) e cada um desses objetos tem umapropriedade correspondente para o nome, o tamanho da memória, o tamanho do disco,o departamento e o tipo.
Criação de máquinas virtuais com base na especificação
Agora vamos criar as máquinas virtuais com base na especificação. Usaremos o loop doPowerShell para cada um novamente:
foreach ($vmSpec in $spec){
New-VM -Name $vmSpec.Name -MemoryMB $vmSpec."Memory size" -DiskGB $vmSpec."Disk size" -VMHost esx-01a.corp.local -Portgroup $pgVM}
Criação de categorias de marcação
Nossa próxima tarefa será marcar devidamente as máquinas virtuais recém-criadas.Para isso, iniciaremos criando duas categorias diferentes de marcação - "Departamento"e "Tipo":
HOL-SDC-1607-PT-SPR
Page 33HOL-SDC-1607-PT-SPR
New-TagCategory -Name DepartmentNew-TagCategory -Name Type
HOL-SDC-1607-PT-SPR
Page 34HOL-SDC-1607-PT-SPR
Criação de marcações com base na especificação
Primeiro, vamos recuperar os nomes exclusivos dos departamentos:
$departmentTagNames = $spec | select -Unique Department
Agora vamos criar uma marcação para cada departamento:
foreach ($departmentTagName in $departmentTagNames){
New-Tag -Name $departmentTagName.Department -Category Department}
Em seguida, temos que fazer o mesmo para os tipos de máquina virtual:
$vmTypes = $spec | select -Unique Typeforeach ($vmType in $vmTypes){
New-Tag -Name $vmType.Type -Category Type}
Você pode verificar se as marcações foram definidas como resultado da açãochamando:
Get-Tag
HOL-SDC-1607-PT-SPR
Page 35HOL-SDC-1607-PT-SPR
Atribuição de marcações às máquinas virtuais com base naespecificação
Agora que temos as marcações e suas categorias definidas de modo correto, é hora demarcar as máquinas virtuais apropriadamente. Usaremos o New-TagAssignment paraatribuir uma marcação à máquina virtual:
foreach ($vmSpec in $spec){
$departmentTag = Get-Tag $vmSpec.Department$typeTag = Get-Tag $vmSpec.Type$vm = Get-VM -Name $vmSpec.NameNew-TagAssignment -Entity $vm -Tag $departmentTagNew-TagAssignment -Entity $vm -Tag $typeTag
}
HOL-SDC-1607-PT-SPR
Page 37HOL-SDC-1607-PT-SPR
Modificação de várias máquinasvirtuais com base em sua marcaçãoNesta lição, você aprenderá como modificar várias máquinas virtuais simultaneamentecom o PowerCLI, com base em suas marcações.
HOL-SDC-1607-PT-SPR
Page 38HOL-SDC-1607-PT-SPR
Atualização da capacidade da memória das máquinasvirtuais com base em suas marcações
Um novo aplicativo será implantado no departamento de vendas da Nephosoft, e issoexigirá que a memória nas máquinas dos usuários seja atualizada para 1 GB. Agora queestamos com as máquinas virtuais devidamente marcadas, será mais fácil fazer aatualização em massa delas. Primeiramente, vamos recuperar todas as máquinasvirtuais do departamento de vendas:
$salesVMs = Get-VM -Tag sales
Em seguida, vamos recuperar todas as máquinas virtuais do usuário:
$userVMs = Get-VM -Tag user
Observação: não podemos usar "Get-VM -Tag sales, user" porque esse comandoretornará todas as máquinas virtuais que são ou do departamento de vendas, ou dousuário, e o que realmente queremos obter são as máquinas virtuais tanto dodepartamento de vendas quanto dos usuários.
Agora vamos selecionar todas as máquinas virtuais que possuem as duas marcaçõesatribuídas. Com essa finalidade, usaremos o cmdlet Compare-Object do Powershell:
$salesUserVMs = Compare-Object $salesVMs $userVMs -IncludeEqual -ExcludeDifferent -PassThru
Para podermos atualizar a memória das máquinas virtuais, precisamos nos certificar deque todas elas estejam desligadas:
$salesUserVMs | where {$_.PowerState -eq "PoweredOn"} | Stop-VM -Confirm:$false
Por fim, atualizaremos a capacidade da memória da máquina virtual com o cmdlet Set-VM:
Set-VM $salesUserVMs -MemoryGB 1 -Confirm:$false
HOL-SDC-1607-PT-SPR
Page 39HOL-SDC-1607-PT-SPR
Configuração e implantação de umtemplate OFVNesta lição, você aprenderá como pode aplicar a configuração em um template de OVF,quando implantar um.
Recuperação do objeto de configuração do OVF
No PowerCLI, a configuração do OVF é representada como um objeto OvfConfiguration,que pode ser recuperado de um arquivo OVF pelo cmdlet Get-OvfConfiguration. Observeque você tem que estar conectado a um vCenter Server para usar esse cmdlet, pois eleprecisa da conexão para analisar as propriedades OVA.
$linuxMicroConfig = Get-OvfConfiguration -Ovf C:\OVF\linux-micro-01a\linux-micro-01a.ovf
Dê uma olhada no objeto dentro da variável $linuxMicroConfig. Ele contém umapropriedade, que indica o arquivo OVF de origem e qual é a real propriedadeconfigurável para o arquivo OVF selecionado: NetworkMapping. Quando olharmosdentro do objeto NetworkMapping, veremos que ele contém somente a propriedadeVM_Network, que é a única configuração que pode ser aplicada àquele template OVF.
Atualização da configuração do OVF
Você pode atualizar a configuração recuperada apenas atribuindo valores àspropriedades do objeto, correspondendo às configurações que deseja aplicar. Em nossocaso, atribuiremos o valor a "VM_Network".
$linuxMicroConfig.NetworkMapping.VM_Network.Value = 'VM'
Importação do vApp aplicando configuração
Ao importar o vApp, você pode aplicar a configuração usando o novo parâmetro doImport-VApp, o "OvfConfiguration".
HOL-SDC-1607-PT-SPR
Page 40HOL-SDC-1607-PT-SPR
Import-VApp -Source 'C:\linux-micro-01a\linux-micro-01a.ovf' -OvfConfiguration $linuxMicroConfig -Name 'LinuxMicro' -VMHost 'esx-01a.corp.local'
Vamos verificar se a configuração foi aplicada:
$linuxMicroVM = Get-VM 'LinuxMicro'$linuxMicroVM | Get-NetworkAdapter
Como você pode ver, o vApp foi implantado com o mapeamento correto de rede.
HOL-SDC-1607-PT-SPR
Page 41HOL-SDC-1607-PT-SPR
Leitura detalhadaEsta lição é somente para fins informativos e apresenta alguns dos recursos maisavançados do PowerCLI, materiais de leitura úteis tanto para usuários iniciantes quantoavançados, bem como informações para outros laboratórios relacionados ao PowerCLI.Sinta-se à vontade para experimentá-los se desejar.
Outros laboratórios relacionados do PowerCLI
HOL-SDC-1602 vSphere with Operations Management - Tópicos avançados: o módulo 8apresentará você aos novos cmdlets do PowerCLI para gerenciar o vRealize OperationsManager.
HOL-HBD-1683 Gerenciamento da nuvem híbrida: o módulo 3 explica o gerenciamentodo vCloud Air com o VMware vSphere PowerCLI.
Acesso ao vSphere API inteiro
Embora o PowerCLI ofereça mais de 300 cmdlets para gerenciar o vSphere, eles nãoabrangem a funcionalidade inteira da plataforma. Apesar disso, você ainda consegueacessar toda a funcionalidade usando o cmdlet Get-View. Esse cmdlet especial é umponto de acesso ao vSphere API inteiro. Os objetos retornados pelo cmdlet sãoconhecidos como "Views" e representam uma cópia exata dos objetos do vSphere API.Você pode encontrar mais informações sobre esses objetos na referência do vSphereAPI.
Documentação:
http://pubs.vmware.com/vsphere-60/index.jsp
Com esse cmdlet você poderá escrever scripts diretamente na API de um modoorientado ao objeto.
Onyx para o Web Client
O Onyx para o Web Client é um Fling que converte as ações executadas no vSphereWeb Client em código do PowerCLI.Net. Esse Fling foi a entrada vencedora no FlingContest de 2014. Ele é uma atualização, de tipos, do fling do Onyx, pois permitefuncionalidade similar no Web Client.
O Fling do Onyx para Web Client permite registrar as ações executadas no vSphere WebClient e transforma essas ações em código do PowerCLI.Net. O código resultante podeser usado para compreender como o VMware executa uma ação na API e também paradefinir melhor as funções. Você também pode inserir o código resultante nos
HOL-SDC-1607-PT-SPR
Page 42HOL-SDC-1607-PT-SPR
mecanismo de pesquisa para localizar a documentação da API e informações sobrecomo usar essa área do vSphere API.
https://labs.vmware.com/flings/onyx-for-the-web-client
Materiais êteis para você começar a usar o scriptavançado do PowerCLI
Se você não tiver experiência com o PowerCLI ou quiser saber mais sobre o produto,veja a seguir alguns blogs que você pode seguir. Neles você poderá encontrarexcelentes artigos e scripts sobre o PowerCLI:
O blog oficial do PowerCLI: http://blogs.vmware.com/PowerCLI/
Blog do Alan Renouf: http://www.virtu-al.net
Blog do Luc Dekens: http://www.lucd.info
HOL-SDC-1607-PT-SPR
Page 43HOL-SDC-1607-PT-SPR
ConclusionThank you for participating in the VMware Hands-on Labs. Be sure to visithttp://hol.vmware.com/ to continue your lab experience online.
Lab SKU: HOL-SDC-1607-PT-SPR
Version: 20160426-122558
HOL-SDC-1607-PT-SPR
Page 44HOL-SDC-1607-PT-SPR