Criar máquinas virtuais com o Azure PowerShell
Neste tutorial, você aprenderá todas as etapas envolvidas na configuração de uma máquina virtual com o Azure PowerShell. O tutorial também abrange consultas de saída, a reutilização de recursos do Azure e a limpeza de recursos.
Este tutorial pode ser concluído com a experiência interativa oferecida por meio do Azure Cloud Shell ou você pode instalar o Azure PowerShell localmente.
Use ctrl-shift-v (cmd-shift-v no macOS) para colar o texto do tutorial no Azure Cloud Shell.
Entrar
Se você estiver usando uma instalação local do Azure PowerShell, precisará entrar antes de executar qualquer outra etapa.
Connect-AzAccount
Conclua o processo de conexão seguindo as etapas exibidas em seu terminal.
Criar um grupo de recursos
No Azure, todos os recursos são alocados em um grupo de gerenciamento de recursos. Os grupos de recursos fornecem agrupamentos lógicos de recursos que os tornam mais fáceis de trabalhar como uma coleção.
Para este tutorial, todos os recursos criados entram em um único grupo chamado TutorialResources
.
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
Criar credenciais de administrador para a VM
Antes de criar uma nova máquina virtual, você deve criar um objeto de credencial que contenha o nome de usuário e a senha da conta Administrador da VM do Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Insira o nome do usuário e a senha quando solicitado. O objeto de credencial resultante é passado como um parâmetro na próxima etapa.
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
Criar uma máquina virtual
As máquinas virtuais no Azure têm um grande número de dependências. O Azure PowerShell cria esses recursos com base nos argumentos de linha de comando especificados por você. Para facilitar a leitura, estamos usando nivelamento do PowerShell para passar parâmetros aos cmdlets do Azure PowerShell.
Crie uma nova máquina virtual executando Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
Assim que a VM é criada, você vê os valores de parâmetro locais utilizados e os recursos do Azure sendo criados. O PowerShell exibirá uma barra de progresso conforme mostrado abaixo.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
Assim que a VM estiver pronta, é possível ver os resultados no Portal do Azure ou inspecionando a variável $newVM1
.
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
Os valores de propriedade listados dentro de chaves são objetos aninhados. Na próxima etapa, vamos mostrar como exibir valores específicos nesses objetos aninhados.
Obter informações de VM com consultas
Vamos obter algumas informações mais detalhadas sobre a VM que acabamos de criar. Neste exemplo, podemos verificar o Nome da VM e a conta de administrador que criamos.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
Podemos usar outros comandos do Azure PowerShell para obter informações específicas sobre a configuração de rede.
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
Neste exemplo, estamos usando o pipeline do PowerShell para enviar o objeto $newVM1 para o cmdlet Get-AzNetworkInterface
. Do objeto do adaptador de rede resultante, estamos selecionando o objeto aninhado IpConfigurations. Do objeto IpConfigurations, estamos selecionando as propriedades Nome e PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Para confirmar se a VM está em execução, precisamos nos conectar por meio da Área de Trabalho Remota. Para fazer isso, é preciso saber o endereço IP público.
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
Neste exemplo, usamos o Get-AzPublicIpAddress
e armazenamos os resultados na variável $publicIp
. Dessa variável, estamos selecionando Propriedades e usando uma expressão para recuperar a propriedade aninhada Fqdn.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
Em seu computador local, você pode executar o comando a seguir para conectar-se à VM na Área de Trabalho Remota.
mstsc.exe /v $publicIp.IpAddress
Para obter mais informações sobre como consultar propriedades de objeto, confira Consultando recursos do Azure.
Criando uma nova VM na sub-rede existente
A segunda VM usa a sub-rede existente.
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
É possível pular algumas etapas para obter o endereço IP público da nova VM, uma vez que ele é retornado na propriedade FullyQualifiedDomainName do objeto $newVM2
. Use o seguinte comando para se conectar usando a Área de Trabalho Remota.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Limpeza
Agora que o tutorial está completo, é hora de limpar os recursos criados. É possível excluir recursos individuais com o comando Remove-AzResource
, mas a maneira mais segura de remover todos os recursos em um grupo de recursos é excluindo o grupo usando o comando Remove-AzResourceGroup
.
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
Esse comando exclui os recursos criados durante o tutorial e é garantido que eles serão desalocados na ordem correta. O parâmetro AsJob
evita o bloqueio do PowerShell enquanto ocorre a exclusão. Para aguardar até que a exclusão seja concluída, use o seguinte comando:
Wait-Job -Id $job.Id
Com a limpeza concluída, o tutorial está encerrado. Continue para obter um resumo de tudo o que você aprendeu e links para recursos que ajudarão nas próximas etapas.
Resumo
Parabéns! Você aprendeu a criar VMs com recursos novos ou existentes, usou expressões e outros comandos do Azure PowerShell para capturar dados a serem armazenados em variáveis do shell e analisou alguns dos recursos que são criados para VMs do Azure.
O que você vai fazer a seguir depende de como você planeja usar o Azure PowerShell. Há uma variedade de materiais que se aprofundam nos recursos abordados neste tutorial.
Documentação detalhada do Azure PowerShell
Talvez você queira um tempo para explorar o conjunto completo da documentação do Azure PowerShell.
Para obter mais informações sobre os comandos usados neste tutorial, consulte os artigos a seguir.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
Também há artigos que se aprofundam nos recursos que foram mostrados no tutorial.
Scripts de exemplo
Se você quiser iniciar imediatamente com tarefas específicas, examine alguns scripts de exemplo.
Comentários
Caso queira enviar comentários, sugestões ou perguntas, há várias maneiras de entrar em contato.
Send-Feedback
é um comando interno do Azure PowerShell que permite enviar comentários de formato livre para a equipe.- Arquive uma solicitação de recurso ou um relatório de bugs no repositório do Azure PowerShell.
- Faça uma pergunta ou obtenha esclarecimentos preenchendo um formulário de problemas no repositório de documentação do Azure PowerShell.
Esperamos que você goste do Azure PowerShell!
Tem algum problema com essa seção? Se tiver, envie seus comentários para que possamos melhorar esta seção.