Mudanças entre as edições de "Manipulando VM´s com scripts PowerShell"

De MSTECH wiki
Ir para: navegação, pesquisa
(Montando a mídia Windows Server 2012 R2 64 bits para a VM)
(Checklist para manipulação de VM´s (em ordem de execução))
Linha 153: Linha 153:
 
'''''Start-VM''''' – comando para startar uma VM.<br \>
 
'''''Start-VM''''' – comando para startar uma VM.<br \>
 
'''''-Name''''' – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).<br \>
 
'''''-Name''''' – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).<br \>
 +
 +
Salve o arquivo, com nome que deseja, precedido de extensão ''.ps1'' e basta executar pelo prompt com a opção '''''Run as Administrador''''' com a seguinte linha de comando:<br \>
 +
<center><code>powershell -command "caminho\do\arquivo\.ps1”</code></center><br \>
 +
 +
==== Montando a mídia Windows Server 2012 R2 64 bits para a VM ====
 +
Para montar a mídia (CD ou imagem ISO) para um VM, segue o comando abaixo.<br \>
 +
<center><code>Set-VMDvdDrive -VMName <nome da VM> -Path "caminho\da\imagem\.iso"</code></center>
 +
Onde:<br \>
 +
'''''Set-VMDvdDrive''''' – Modifica as configurações de unidade de DVD virtual para uma máquina virtual (VM).<br \>
 +
'''''-VMName''''' – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).<br \>
 +
'''''-Path''''' - parâmetro que especifica o caminho onde está salvo a imagem ISO.<br \>
  
 
Salve o arquivo, com nome que deseja, precedido de extensão ''.ps1'' e basta executar pelo prompt com a opção '''''Run as Administrador''''' com a seguinte linha de comando:<br \>
 
Salve o arquivo, com nome que deseja, precedido de extensão ''.ps1'' e basta executar pelo prompt com a opção '''''Run as Administrador''''' com a seguinte linha de comando:<br \>

Edição das 12h45min de 13 de dezembro de 2016

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
3.0 Windows PowerShell


Introdução

Este documento visa apresentar os procedimentos-padrão para manipulação de VM´s com scripts PowerShell.


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 criação de scripts PowerShell em manipulação de VM´s em quaisquer ambiente.

Checklist para manipulação de VM´s (em ordem de execução)

Habilitar scripts PowerShell

Para permitir a execução de scripts PowerShell em VM´s sem restrições, a partir de um host, é necessário inserir uma linha de comando abaixo.

Set-ExecutionPolicy Unrestricted -force

Onde:
Set-ExecutionPolicy – altera a política default do PowerShell
Unrestricted – permite rodar todos os scripts e arquivos de configuração
- force – parâmetro para forçar imediatamente a alteração da política default

Vincula a VM para o domínio

Para vincular a VM para um domínio de rede, a partir de um host, é necessário inserir as linhas de comando abaixo.

1 $oldName = "<nome antigo da VM>"
2 $newName = "<nome novo para a VM>"
3 $domain = "<domínio de rede>"
4 $user = "<usuário de rede, pode ser o seu usuário>"
5 $password = ConvertTo-SecureString -String "<senha de rede>" -AsPlainText -Force
6 $username = "$domain\$user"
7 $credential = New-Object System.Management.Automation.PSCredential($username,$password)
8 Rename-Computer -NewName $newName -Force
9 Add-Computer -ComputerName $oldName -DomainName $domain -Options JoinWithNewName -Credential $credential –Restart

Onde:
Linhas 1 a 5 – São as variáveis com valores a definir (pelo analista que irá preparar este script). Para uma melhor explicação somente para o item 5, converte uma string de texto sem formatação (no caso, a senha) em string segura, logo força o sistema a proteger a entrada do parâmetro –String.
Linha 6 – Atribui os valores das variáveis $domain e $user respectivamente, para a variável $username
Linha 7 – Cria um objeto e salva as credenciais para a variável $credential
Linha 8 – Força a alterar o nome da VM
Linha 9 – Vincula a VM para o domínio de rede, junto com o novo nome e as credenciais, forçando o reboot.

Criar disco virtual e atribuir o disco para a VM

Para vincular a VM para um domínio de rede, a partir de um host, é necessário inserir as linhas de comando abaixo.

1 New-VHD –Path "caminho\onde\salvará\arquivo\.vhdx" -SizeBytes <tamanho>
2 Add-VMHardDiskDrive -VMName <nome da VM> -Path "caminho\onde\foi\salvo\arquivo\.vhdx"

Onde:
1 – Cria um disco virtual com o caminho e tamanho (em Mb ou Gb) a definir (pelo analista que irá preparar este script).
2 – Adiciona o disco virtual para a VM cujo nome deve ser o que exibe no Hyper-V Manager e informa o caminho onde foi salvo o disco virtual (arquivo *.vhdx).

Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1"

Configurando o disco virtual para a VM

Para configurar o disco virtual para VM, irá envolver 4 arquivos. Sendo 1 deles em extensão *.txt e o resto em extensão *.ps1.
Vamos definir um arquivo *.txt para criar uma série de comandos para invocar a ferramenta diskpart. Conforme mostra os comandos abaixo.

1  select disk 1
2  online disk
3  select disk 1
4  attributes disk clear readonly
5  select disk 1
6  create partition primary
7  select volume 4
8  format fs=ntfs label="Dados" quick compress
9  select volume 4
10 assign letter=E

Onde:
1 – seleciona o disco 1, no caso o disco virtual, já vinculado na VM
2 – muda o estado do disco 1 para online
3 – seleciona novamente o disco 1
4 – faz com que os atributos do disco 1 sejam limpos
5 – seleciona novamente o disco 1
6 – cria uma partição de dados primária básica para o disco 1
7 – seleciona o volume 4 que, logicamente, representa o disco 1
8 – formata o volume 4 (ou disco 1) em sistema de arquivos NTFS, com nome Dados e compressão rápida
9 – seleciona novamente o volume 4.
10 – atrbui letra E para o volume 4

Salve o arquivo, com nome que deseja, precedido de extensão .txt.

Definiremos agora um arquivo .ps1 para que copie o arquivo .txt, do host para a VM. Segue a linha de comando abaixo.

copy <caminho\onde\salvou\arquivo\.txt> \\<caminho\onde\salvará\arquivo\.txt>

Salve o arquivo, com nome que deseja, precedido de extensão .ps1.

Em seguida, definiremos o arquivo .ps1 que executa o comando diskpart, segue a linha de comando abaixo.

diskpart /s <caminho\do\arquivo\.txt\na\VM>

Onde:
diskpart /s – inicia o script de diskpart
<caminho\do\arquivo\.txt\na\VM> - arquivo texto que contém o script diskpart
Salve o arquivo, com nome que deseja, precedido de extensão .ps1.

Finalmente, definiremos o arquivo .ps1 que contata a VM e executa o arquivo .ps1 do procedimento anterior (aquele que executa o comando diskpart) remotamente a partir do host. Segue a linha de comando abaixo.

Invoke-Command -ComputerName <nome da VM> -FilePath ""caminho\do\arquivo\.ps1""

Onde:
Invoke-Command – executa comandos remotamente.
-ComputerName – parâmetro que especifica a VM (cujo nome deve ser o que exibe no Hyper-V Manager) no qual o comando é executado.
-FilePath – executa o script armazenado no host em uma VM
Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”

Desligando a VM

Para desligar a VM, segue o comando abaixo.

Stop-VM –Name <nome da VM> –TurnOff

Onde:
Stop-VM – comando para parar uma VM.
-Name – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).
-TurnOff – paramêtro usado para desligar a VM.
Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”

Alterando tamanho da memória RAM

Para alterar o tamanho da memória RAM para uma VM, segue o comando abaixo.

Set-VM -StaticMemory -Name <nome da VM> -MemoryStartupBytes <tamanho>

Onde:
Set-VM – modifica as propriedades de uma VM.
-StaticMemory – parâmetro que define como memória estática (definida manualmente) para a VM.
-MemoryStartupBytes – paramêtro usado para definir o tamanho da memória para uma VM (em Mb ou Gb).

Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”

Alterando a quantidade de processadores virtuais

Para alterar a quantidade de processadores virtuais para uma VM, segue o comando abaixo.

Set-VMProcessor <nome da VM> -count <quantidade>

Onde:
Set-VMProcessor – modifica as propriedades do processador em uma VM.
-Name – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).
-count – paramêtro usado para definir a quantidade de processadores virtuais para uma VM.

Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”

Startando a VM

Para startar a VM, segue o comando abaixo.

Start-VM –Name <nome da VM>

Onde:
Start-VM – comando para startar uma VM.
-Name – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).

Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”

Montando a mídia Windows Server 2012 R2 64 bits para a VM

Para montar a mídia (CD ou imagem ISO) para um VM, segue o comando abaixo.

Set-VMDvdDrive -VMName <nome da VM> -Path "caminho\da\imagem\.iso"

Onde:
Set-VMDvdDrive – Modifica as configurações de unidade de DVD virtual para uma máquina virtual (VM).
-VMName – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).
-Path - parâmetro que especifica o caminho onde está salvo a imagem ISO.

Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”

Montando a mídia Windows Server 2012 R2 64 bits para a VM

Para montar a mídia (CD ou imagem ISO) para um VM, segue o comando abaixo.

Set-VMDvdDrive -VMName <nome da VM> -Path "caminho\da\imagem\.iso"

Onde:
Set-VMDvdDrive – Modifica as configurações de unidade de DVD virtual para uma máquina virtual (VM).
-VMName – parâmetro que especifica o nome da VM (cujo nome deve ser o que exibe no Hyper-V Manager).
-Path - parâmetro que especifica o caminho onde está salvo a imagem ISO.

Salve o arquivo, com nome que deseja, precedido de extensão .ps1 e basta executar pelo prompt com a opção Run as Administrador com a seguinte linha de comando:

powershell -command "caminho\do\arquivo\.ps1”