Introdução ao VMware PowerCLI

O PowerCLI é uma ferramenta de linha de comando da VMware, baseada no Microsoft PowerShell, criada para dar suporte aos Engenheiros e Administradores do VMware vSphere, em suas tarefas de gerenciamento e automação do ambiente de virtualizaçao.

Essa ferramenta pode ser usada para automatizar tarefas nos servidores vSphere (vCenter/ESX/ESXi), HA Clusters, Storage (Datastores), Networks (Virtual Switches) e nas VMs.

Existem mais de 220 cmdlets (linhas de comando) disponíveis em sua versão 4 e mais de 260 cmdlets na versão 5.0, úteis e disponíveis para automatizar o gerenciamento da infraestrutura vSphere. Essas linhas de comando residem em DLLs e são chamadas de “Spap-ins”. Detalhe: Inteiramente grátis!

 

Requisitos e Suportabilidade

Essa ferramenta, em sua versão 5.0, pode ser instalada nos seguintes Sistemas Operacionais:

  • Windows 7
  • Windows Server 2008
  • Windows Vista
  • Windows XP SP2
  • Windows 2003 Server SP2

E irá funcionar tanto nas versões de 32-Bits como 64-bits.

Também não pode faltar o .NET Framework 2.0 SP1 e o Windows PowerShell 1.0/2.0

Utilizando o PowerCLI 5.0, os seguintes ambientes podem ser gerenciados:

  • VMware ESXi 5.0 / 4.1
  • VMware ESX 4.1 / 4.0 U2 / 4.0 U1
  • vCenter Server 5.0 / 4.1 / 4.0 U2 / 4.0 U1

 

Instalação e Configuração

A primeira coisa a fazer é o download do PowerCLI a partir do seguinte endereço:http://www.vmware.com/go/powercli

Antes de começar a instalação, é necessário fazer uma alteração no PowerShell.

Por padrão, o Powershell está no Mode de Execução “Restricted” (restrito), onde não permite nenhum comando ser executado. Ele está completamente Lockdown.

Assim sendo, precisamos alterar esse modo para “RemoteSigned”. Se você já fez isso anteriormente,  basta pular essa parte. Do contrário, siga os passos a seguir.

Existem duas maneiras de realizar essa tarefa:

1. Via linha de commando:

> Set-ExecutionPolicy -RemoteSigned

2. Alterando o Registro do Windows

Ex: No Windows 7:

HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

Altere o conteúdo da String “ExecutionPolicy” para “RemoteSigned. Se essa String não existir, então crie uma com o tipo “REG_SZ” com o valor “RemoteSigned”.

Então verifique se a alteração foi bem sucedida executando o comando “Get-ExecutionPolicy” no PowerShell.

Feito isso, basta verificar para ver em que “Mode” está o PowerShell, como indicado abaixo:

 

PowerShell preparado, vamos à instalação do PowerCLI. Clique duplo no aquivo de instalação: VMware-PowerCLI-5.0.0-435426.ex

 

Clique Next na janela de Boas-Vindas, Aceite o Acordo de Licença, Altere a localização padrão de instalação (se desejar) ou simplemeste clique Next.

A Instalação vai correr seu progresso normal até uma mensagem indicando que a instalação foi concluída com sucesso. Clique em “Finish” para fechar a janela.

Aperecerá então 2 novos atalhos no Desktop, conforme abaixo:

 

Ao executar o VMware vSphere PowerCLI, você verá algo parecido com a tela abaixo:

 

Os Primeiros comandos

O primeiro coisa, assim como na vida, é preciso aprender a pedir ajuda quando não se sabe o que fazer. Então vamos aprender como fazer isso nessa ferramenta. Lembre-se que ela é uma extensão do PowerShell, então o que temos que fazer é digitar o comando de solicitação de ajuda “Conseguir-Ajuda” e em seguida o comando PowerCLI, o qual desejamos saber como utilizá-lo. No exemplo abaixo, queremos saber sobre o comando para criar um Modelo de Máquina Virtual:

> Get-Help New-Template

 

Mas para ser mais objetivo, podemos pedir somente os exemplos de como o comando pode ser utilizado. Assim, adicionamos o parâmetro “-examples”:

> Get-Help New-Template -examples

E se ainda quisermos uma descrição detalhada do comando, podemos substituir o parâmetro de exemplos pelo parâmetro “-Full”: > Get-Help New-Template -Full.

Assim, essa técnica super “avançada” de pedir ajuda funciona com qualquer outro comando. J

Então vamos lá… É hora de conectar ao servidor ESXi ou ao vCenter server. Primeiramente vamos conectar diretamente ao servidor ESXi:

> Connect-VIServer <ESXi_Server> -User root -Password Senha

Que tal utilizarmos um exemplo melhor, com um pouco mais de recursos, inclusive salvando a senha em um arquivo criptografado, e usando essa credencial para se conectar ao vCenter Server.

Iremos usar algumas Variáveis nesse próximo exemplo. Acompanhe os comandos digitados do prompt do PowerCLI:

Sintaxe:

> $variavel = <vCenterServer>
> New-VICredentialItem -Host $vc -User <ContaAdministrador> -Password <SenhaAdministrador> -File C:\Pasta\NomeDoArquivo.xml

No exemplo acima, nós criamos uma variável chamada “$vc” para armazenar o nome do servidor vCenter. Depois criamos uma credencial e invocamos essa varíavel para ser usada no parâmetro “-Host”, e em seguida indicamos a criação de um arquivo. Por fim, apontamos para a localização e o nome do arquivo a ser criado.

Na figura acima, vemos os comandos executados e o resultado obtido, bem como podemos visualizar o arquivo criado por meio do Windows Explorer.

Bem… Uma vez que a credencial foi salva, vamos então utilizá-la para se conectar ao servidor vCenter, de uma forma mais segura.

Começaremos criando uma outra variável, agora para receber as informações de usuário e senha:

> $cred = Get-VICredentialStoreItem -Host $vc -File C:\vSphere\Credencial.xml

E por fim se conectar ao vCenter, usando as variáveis e suas “propriedades”:

> Connect-VIServer $vc -User $cred.User -Password $cred.Password

 

Uma vez conectados, vamos verificar algumas informações sobre o servidor ESXi que está sendo gerenciado por esse servidor vCenter, considerando que esse servidor já foi previamente adicionado ao vCenter, e que seu nome é “vsphere5-esx01”.

Que tal vermos o tipo de processador que o servidor ESXi está utilizando?

Passo 1: Criar uma variável com o nome do servidor:

> $ESXHost = “vsphere5-esx01″

Passo 2: Criar uma variável para receber o objeto “VMHost” e suas propriedades, para o servidor:

> $VMHost = Get-VMHost $ESXHost

Passo 3: Agora podemos consultar o tipo de processador desse servidor

> $VMHost.ProcessorType

E que tal o número de CPUs?

> $VMHost.NumCpu

E sobre a versão do Hypervisor? Será ela 3.5 ou 4.1? Ou quem sabe até mesmo um 5.0?

> $VMHost.Version

 

Mas espere aí, como posso saber todas as propriedades de um servidor vSphere que podem ser consultadas?

Use o seguinte comando para listar as properiedades de um objeto, neste caso um servidor ESXi:

> Get-VMHost “vsphere5-esx01″ | Get-Member

Ou o mesmo comando, porém usando a varíavel que foi criada acima:

> Get-VMHost $ESXHost | Get-Member

Finalizamos por aqui esse pequeno artigo com algumas informações importantes:

  1. Tudo que é feito via PowerCLI pode ser acompanhado via vSphere Client. Utilizar o PowerCLI é simplesmente usar linhas de comando e scripts para executar as mesmas tarefas.
  2. Uma vez que essa ferramenta é uma extensão do PowerShell, seus comandos também não são Case-sensitive, mas quando se trata de um comando que envolva dados do vSphere, aí então passa a ser completamente case-sensitive.
  3. As variáveis, como sendo PowerShell, nao são case-sensitive ($Variavel)
  4. Alguns nomes, a pesar de não serem case-sensitive, são o que é conhecido como case-perceptive, como por exemplo o nome de um Port Group, onde “VM Network” é exibido diferentemente de “vm network”.

É isso aí, por meio desse artigo apresentamos apenas uma introdução sobre o assunto. Em outros artigos abordaremos outros comandos e a criação de scripts.

Divirtam-se!

Fonte: vmaster

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: