VMware Hands-on Labs - HOL-SDC-1607-PT-SPR


Lab Overview - HOL-SDC-1607 - From Beginner to Advanced Features with PowerCLI

Orientação de Laboratório


Este laboratório foi elaborado para usuários de Power CLI iniciantes até de nível avanç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, Carl Olafson

Este manual pode ser descarregado ( downloaded ) a partir do link Hands-On Labs Document 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 e senhas utilizados no módulo deste laboratório.

Ao invés de digitar diretamente, há dois métodos de introdução de dados bastante úteis que tornam mais fácil a inserção de dados complexos.

 

 

Clique e arraste o conteúdo do manual para dentro do Console da janela principal ativa

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 em endereços de E-mail. O caracter "@" é inserido com as teclas "Shift-2" no teclado padrão americano (US).

  1. Clique uma vez sobre a janela ativa.
  2. Clique na tecla Shift.

 

 

Clique na tecla "@"

 

  1. Clique na tecla "@".

Veja que o caracter "@" foi adicionado no Console da janela ativa.

 

Módulo 1: Dos recursos básicos aos avançados com o PowerCLI (60 minutos)

Módulo de visão geral


Este módulo apresentará você ao VMware vSphere PowerCLI. Os usuários novatos aprenderão a usar a ferramenta com facilidade, e os usuários mais avançados se familiarizarão com a nova funcionalidade disponível nas versões mais recentes do produto, como a configuração de um OVA antes de sua implantação e a filtragem de objetos de acordo com suas marcações. Tantos os usuários inexperientes como os experientes certamente aprenderão algo novo.


Introdução ao PowerShell e PowerCLI


Nesta 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 os comandos 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 desktop denominado "VMware vSphere PowerCLI". Isso abrirá o console do PowerShell e carregará todos os módulos do PowerCLI.

 

 

Uso do Powershell ISE

 

Como alternativa ao console simples, você pode usar o editor de script do Powershell ISE, que proporciona uma experiência melhor ao usuário. Você pode iniciar o editor 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 comandos individuais e exibição de sua saída (uma analógica do console PowerShell padrão).

 

 

Uso do Powershell ISE

 

Durante este laboratório, você executará vários comandos do PowerCLI no painel inferior do PowerShell ISE ou no console do PowerShell. Você mesmo pode digitar os comandos ou copiá-los e colá-los usando os arquivos "Module7.ps1" localizados no desktop. O modo mais prático de usar o laboratório é abrir o Module7.ps1 no painel superior 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 de que o anterior esteja concluído. Você verá a mensagem "Completed" (3) na parte inferior do console.

 

 

Listagem dos comandos disponíveis

Vamos explorar o que é possível fazer com o PowerCLI. Os snapins do PowerCLI fornecem mais de 500 comandos (chamados cmdlets no PowerShell) para gerenciar o vSphere, vCloud Air, Site Recovery Manager, vRealize Operations e vSphere Update Manager. Você pode exibir os comandos disponíveis no PowerCLI digitando:

Get-VICommand

Ele relaciona todos os comandos do PowerCLI. Como a lista é muito grande, você pode desejar restringi-la para algo mais específico. Por exemplo, todos os comandos para gerenciar máquinas virtuais:

Get-VICommand *VM

Dica: você pode usar o preenchimento automático para agilizar a digitação. Basta começ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 facilmente sua 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 e descriçõ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 do seguinte modo:

help Connect-VIServer -Examples

Você também pode pesquisar uma palavra específica no arquivo inteiro da ajuda. Vamos tentar 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 mais tarde neste módulo.

Sinta-se à vontade para verificar na ajuda algum cmdlet que demonstramos neste laboratório.

 

 

Uso do PowerCLI para emitir relatórios


Com mais de 100 cmdlets Get-*, o PowerCLI também é uma poderosa ferramenta de emissão de relatórios. Nesta lição, você aprenderá mais sobre o uso do PowerCLI.


 

Recuperação de máquinas virtuais

 

Uma das ações mais comuns é listar as máquinas virtuais no vCenter Server. Isso é útil para navegar pelo inventário e gerar relatórios, bem como processar detalhadamente máquinas virtuais específicas (ex. modificação de máquinas virtuais em lote). Você pode recuperar todas as máquinas virtuais com:

Get-VM

Você também pode recuperar uma ou mais máquinas virtuais pelo nome. Experimente fazer o seguinte:

Get-VM linux-CPU-Load-01a
Get-VM linux*

 

 

Recuperação de propriedades específicas de um objeto

 

Quando você chama um cmdlet (como o Get-VM), o resultado obtido é um objeto ou array de objetos (neste caso, é um objeto de máquina virtual). Para visualizar quais propriedades 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 objetos do PowerShell). Em vez de recuperar as máquinas virtuais, armazená-las em uma variá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 primeiro cmdlet torna-se a entrada do segundo.

Então, você pode usar o comando 'select' do PowerShell para recuperar somente as propriedades de que você precisa do objeto resultante:

Get-VM linux-CPU-Load-01a | Select Name, NumCPU, MemoryMB, PowerState, VMHost

 

 

Filtragem de resultados de relatórios

 

Quando o cmdlet Get-* não tem parâmetro para filtrar os objetos pela propriedade de que você precisa, é possível usar o comando 'where' do PowerShell para filtrar os resultados 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

 

Exportação dos resultados do relatórios para diversos formatos


Para apresentar os dados para seu gerente ou outra equipe ou para transferi-los para outro 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).


 

Exportação no formato txt

 

Vamos começar com a exportação mais básica: arquivo txt. Para exportar o relatório no formato 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.

 

 

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.

 

 

Exportação no formato xml

 

O próximo formato que você exportará será XML. O cmdlet do PowerShell que usaremos será ConvertTo-Xml. Como esse cmdlet retorna o objeto XMLDocument, precisamos chamar 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.

 

 

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.

 

 

Adição de formatação na página HTML

 

Para que o relatório em HTML tenha uma aparência melhor, podemos aplicar alguns estilos 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

 

 

Definição e configuração de um cluster


Nas próximas lições, você configurará um pequeno ambiente virtual de uma empresa fictí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 em uma 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 suas marcações.  Nesta lição, iniciaremos com as informações sobre como criar e configurar um 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 especificar o 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 do cluster

 

Agora vamos configurar o modo Enhanced vMotion Compatibility do cluster para assegurar a compatibilidade da CPU com o vMotion. Para fazer isso, primeiramente vamos 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 o mesmo 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.

Dica: a solicitação de confirmação é boa para uso interativo, entretanto, ela é indesejada nos scripts, pois ela os interromperá. Você pode confirmar automaticamente a 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 sejam protegidas em caso de falha do host:

Set-Cluster $cluster1 -HAEnabled:$true -Confirm:$false

 

 

Ativação de DRS no cluster e definição das configurações do 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 a migração da máquina virtual (você pode recuperar e aplicar essas recomendações com os cmdlets Get-DrsRecommendation e Apply-DrsRecommendation):

Set-Cluster $cluster1 -DRSEnabled:$true -DRSAutomationLevel "Manual" -Confirm:$false

 

Migração de hosts para o cluster


Nesta 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 modo de manutenção. Para colocá-los no modo de manutenção, temos que antes desligar todas as máquinas virtuais em execução. Portanto, vamos recuperar todas as máquinas virtuais 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

 

Definição e configuração de switch virtual distribuído


Nesta lição, você aprenderá como criar um switch distribuído e migrar a rede de host para 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 switch distribuí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:

$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 hosts em 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 do PowerShell. Para cada host, primeiramente recuperaremos suas NICs físicas e, depois, suas NICs de gerenciamento, armazenamento e VMKernel do vMotion. Então, os migraremos juntos usando o cmdlet Add-VDSwitchPhysicalNetworkAdapter e, ao mesmo tempo, especificaremos os port groups distribuídos para cada nic do VMKernel com o parâ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 vmk2
  Add-VDSwitchPhysicalNetworkAdapter -DistributedSwitch $vds -VMHostPhysicalNic $pNics -VMHostVirtualNic $vNicManagement,$vNicStorage,$vNicvMotion -VirtualNicPortGroup $pgManagement,$pgStorage,$pgvMotion -Confirm:$false
}

 

 

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 os adaptadores 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.

 

Criação de uma máquina virtual e sua movimentação entre os hosts usando o vMotion


Nesta lição, você aprenderá como criar uma máquina virtual e a moverá usando o vMotion 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 o nome da máquina virtual, o disco rígido, o tamanho da memória, o host e o datastore em que desejamos criá-la. Além disso, especificaremos que o port group da rede da máquina virtual esteja no switch distribuído, criado anteriormente. Colocaremos a má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 o vMotion

 

Agora vamos mover a máquina virtual para o outro host para deixar a carga de trabalho distribuí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 da máquina virtual. Se isso acontecer, você terá que reconectar o datastore NFS em um de seus hosts. Para isso, usaremos o cmdlet Get-EsxCli:

Recupere o EsxCLli para esx-02a.corp.local:

$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 as má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 outros cmdlets que podem demorar muito para concluir a ação também suportam o -RunAsync.

 

Criação de várias máquinas virtuais e sua devida marcação


Nesta lição, você aprenderá como criar várias máquinas virtuais com o PowerCLI de acordo com uma especificação salva no arquivo csv. Você também marcará as má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áquinas virtuais. Abra o arquivo "vmspec.csv" localizado em seu desktop. Para cada máquina virtual, temos o nome, o tamanho da memória (em MB), o tamanho do disco (em GB), o departamento e o tipo (máquina virtual do usuário ou do servidor).

 

 

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 de objetos (um objeto para cada máquina virtual) e cada um desses objetos tem uma propriedade 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 do PowerShell 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":

New-TagCategory -Name Department 
New-TagCategory -Name Type 

 

 

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 Type
foreach ($vmType in $vmTypes) 
{
  New-Tag -Name $vmType.Type -Category Type
}

Você pode verificar se as marcações foram definidas como resultado da ação chamando:

Get-Tag

 

 

 

Atribuição de marcações às máquinas virtuais com base na especificação

 

Agora que temos as marcações e suas categorias definidas de modo correto, é hora de marcar as máquinas virtuais apropriadamente. Usaremos o New-TagAssignment para atribuir 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.Name
  New-TagAssignment -Entity $vm -Tag $departmentTag
  New-TagAssignment -Entity $vm -Tag $typeTag
} 

 

Modificação de várias máquinas virtuais com base em sua marcação


Nesta lição, você aprenderá como modificar várias máquinas virtuais simultaneamente com o PowerCLI, com base em suas marcações.


 

Atualização da capacidade da memória das máquinas virtuais com base em suas marcações

 

Um novo aplicativo será implantado no departamento de vendas da Nephosoft, e isso exigirá que a memória nas máquinas dos usuários seja atualizada para 1 GB. Agora que estamos com as máquinas virtuais devidamente marcadas, será mais fácil fazer a atualização em massa delas. Primeiramente, vamos recuperar todas as máquinas virtuais 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 comando retornará todas as máquinas virtuais que são ou do departamento de vendas, ou do usuário, e o que realmente queremos obter são as máquinas virtuais tanto do departamento de vendas quanto dos usuários.

Agora vamos selecionar todas as máquinas virtuais que possuem as duas marcações atribuí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 de que 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

 

Configuração e implantação de um template OFV


Nesta 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. Observe que você tem que estar conectado a um vCenter Server para usar esse cmdlet, pois ele precisa 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 uma propriedade, que indica o arquivo OVF de origem e qual é a real propriedade configurável para o arquivo OVF selecionado: NetworkMapping. Quando olharmos dentro do objeto NetworkMapping, veremos que ele contém somente a propriedade VM_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 às propriedades do objeto, correspondendo às configurações que deseja aplicar. Em nosso caso, 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 do Import-VApp, o "OvfConfiguration".

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.

 

Leitura detalhada


Esta lição é somente para fins informativos e apresenta alguns dos recursos mais avançados do PowerCLI, materiais de leitura úteis tanto para usuários iniciantes quanto avanç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 8 apresentará você aos novos cmdlets do PowerCLI para gerenciar o vRealize Operations Manager.

HOL-HBD-1683 Gerenciamento da nuvem híbrida: o módulo 3 explica o gerenciamento do 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ão abrangem a funcionalidade inteira da plataforma. Apesar disso, você ainda consegue acessar toda a funcionalidade usando o cmdlet Get-View. Esse cmdlet especial é um ponto de acesso ao vSphere API inteiro. Os objetos retornados pelo cmdlet são conhecidos 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 vSphere API.

Documentação:

http://pubs.vmware.com/vsphere-60/index.jsp

Com esse cmdlet você poderá escrever scripts diretamente na API de um modo orientado ao objeto.

 

 

Onyx para o Web Client

O Onyx para o Web Client é um Fling que converte as ações executadas no vSphere Web Client em código do PowerCLI.Net. Esse Fling foi a entrada vencedora no Fling Contest de 2014. Ele é uma atualização, de tipos, do fling do Onyx, pois permite funcionalidade similar no Web Client.

O Fling do Onyx para Web Client permite registrar as ações executadas no vSphere Web Client e transforma essas ações em código do PowerCLI.Net. O código resultante pode ser usado para compreender como o VMware executa uma ação na API e também para definir melhor as funções. Você também pode inserir o código resultante nos mecanismo de pesquisa para localizar a documentação da API e informações sobre como 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 script avanç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á encontrar excelentes 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

 

Conclusion

Thank you for participating in the VMware Hands-on Labs. Be sure to visit http://hol.vmware.com/ to continue your lab experience online.

Lab SKU: HOL-SDC-1607-PT-SPR

Version: 20160426-122604