Compartilhar via


Criar uma máquina virtual usando um disco do sistema operacional gerenciado existente com o PowerShell

Esse script cria uma máquina virtual anexando um disco gerenciado existente como disco do sistema operacional. Use esse script em cenários anteriores:

  • Criar uma VM a partir de um disco de SO gerenciado existente copiado de um disco gerenciado em outra assinatura
  • Criar uma VM de um disco gerenciado existente que foi criado de um arquivo VHD especializado
  • Criar uma VM de um disco de SO gerenciado existente que foi criado a partir de um snapshot

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Exemplo de script

#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId'

#Provide the name of your resource group
$resourceGroupName ='yourResourceGroupName'

#Provide the name of the snapshot that will be used to create OS disk
$snapshotName = 'yourSnapshotName'

#Provide the name of the OS disk that will be created using the snapshot
$osDiskName = 'yourOSDiskName'

#Provide the name of an existing virtual network where virtual machine will be created
$virtualNetworkName = 'yourVNETName'

#Provide the name of the virtual machine
$virtualMachineName = 'yourVMName'

#Provide the size of the virtual machine
#e.g. Standard_DS3
#Get all the vm sizes in a region using below script:
#e.g. Get-AzVMSize -Location westus
$virtualMachineSize = 'Standard_DS3'

#Set the context to the subscription Id where Managed Disk will be created
Select-AzSubscription -SubscriptionId $SubscriptionId

$snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName

$diskConfig = New-AzDiskConfig -Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy

$disk = New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $osDiskName

#Initialize virtual machine configuration
$VirtualMachine = New-AzVMConfig -VMName $virtualMachineName -VMSize $virtualMachineSize

#Use the Managed Disk Resource Id to attach it to the virtual machine. Please change the OS type to linux if OS disk has linux OS
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -ManagedDiskId $disk.Id -CreateOption Attach -Windows

#Create a public IP for the VM
$publicIp = New-AzPublicIpAddress -Name ($VirtualMachineName.ToLower()+'_ip') -ResourceGroupName $resourceGroupName -Location $snapshot.Location -AllocationMethod Dynamic

#Get the virtual network where virtual machine will be hosted
$vnet = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName

# Create NIC in the first subnet of the virtual network
$nic = New-AzNetworkInterface -Name ($VirtualMachineName.ToLower()+'_nic') -ResourceGroupName $resourceGroupName -Location $snapshot.Location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $publicIp.Id

$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nic.Id

#Create the virtual machine with Managed Disk
New-AzVM -VM $VirtualMachine -ResourceGroupName $resourceGroupName -Location $snapshot.Location

Limpar a implantação

Execute o comando a seguir para remover o grupo de recursos, a VM e todos os recursos relacionados.

Remove-AzResourceGroup -Name myResourceGroup

Explicação do script

Esse script usa os seguintes comandos para obter as propriedades do disco gerenciado, anexar um disco gerenciado em uma nova VM e criar uma VM. Cada item na tabela contém um link para a documentação específica do comando.

Comando Anotações
Get-AzDisk Obtém o objeto de disco com base no nome e no grupo de recursos de um disco. A propriedade ID do objeto de disco retornado é usada para anexar o disco a uma nova VM
New-AzVMConfig Cria uma configuração de VM. Essa configuração inclui informações como nome da VM, sistema operacional e credenciais administrativas. A configuração é usada durante a criação da VM.
Set-AzVMOSDisk Anexa um disco gerenciado usando a propriedade Id do disco como disco do sistema operacional a uma nova máquina virtual.
New-AzPublicIpAddress Cria um endereço IP público.
New-AzNetworkInterface Cria uma interface de rede.
New-AzVM Crie uma máquina virtual.
Remove-AzResourceGroup Remove um grupo de recursos e todos os recursos contidos nele.

Para usar imagens do marketplace, use Set-AzVMPlan para definir as informações do plano.

Set-AzVMPlan -VM $VirtualMachine -Publisher $Publisher -Product $Product -Name $Bame

Próximas etapas

Para obter mais informações sobre o módulo do Azure PowerShell, confira Documentação do Azure PowerShell.

Exemplos adicionais de scripts do PowerShell para máquinas virtuais podem ser encontrados na documentação do Azure Windows VM .