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 aborda consultas de saída, reutilização de recursos do Azure e 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 outras etapas.
Connect-AzAccount
Conclua o processo de entrada 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 contendo o nome de usuário e a senha para a conta de administrador da VM do Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Insira o nome de 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 para você com base nos argumentos de linha de comando especificados. Para facilitar a leitura, estamos usando de modelagem do PowerShell para passar parâmetros para os cmdlets do Azure PowerShell.
Crie uma nova máquina virtual executando o Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
À medida que a VM é criada, você vê os valores de parâmetro usados 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.
Quando a VM estiver pronta, poderemos exibir 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, mostraremos como exibir valores específicos nesses objetos aninhados.
Obter informações de VM com consultas
Vamos obter informações mais detalhadas da VM que acabamos de criar. Neste exemplo, verificamos 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 $newVM 1 para o cmdlet Get-AzNetworkInterface
. No objeto de interface de rede resultante, estamos selecionando o objeto IpConfigurations aninhado. No objeto IpConfigurations, estamos selecionando as propriedades Name 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 isso, precisamos 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
. Nessa variável, estamos selecionando propriedades e usando uma expressão para recuperar a propriedade Fqdn aninhada.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
No computador local, você pode executar o comando a seguir para se conectar à VM pela Área de Trabalho Remota.
mstsc.exe /v $publicIp.IpAddress
Para obter mais informações sobre como consultar propriedades de objeto, consulte Consulta de 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
Você pode ignorar algumas etapas para obter o endereço IP público da nova VM, pois ela é retornada na propriedade FullyQualifiedDomainName do objeto $newVM2
. Use o comando a seguir para se conectar usando a Área de Trabalho Remota.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Limpeza
Agora que o tutorial está concluído, é hora de limpar os recursos criados. Você pode excluir recursos individuais com o comando Remove-AzResource
, mas a maneira mais segura de remover todos os recursos em um grupo de recursos é excluir 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 tem a garantia de desalocá-los na ordem correta. O parâmetro AsJob
impede que o PowerShell bloqueie enquanto a exclusão ocorre. 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 foi concluído. Continue para obter um resumo de tudo o que você aprendeu e links para recursos que ajudarão você com suas próximas etapas.
Resumo
Parabéns! Você aprendeu a criar VMs com recursos novos ou existentes, expressões usadas e outros comandos do Azure PowerShell para capturar dados a serem armazenados em variáveis de shell e analisou alguns dos recursos que são criados para VMs do Azure.
Para onde você vai a partir daqui, depende de como você planeja usar o Azure PowerShell. Há uma variedade de materiais que vão mais detalhadamente sobre os recursos abordados neste tutorial.
Documentação detalhada do Azure PowerShell
Talvez você queira ter tempo para explorar a documentação completa do Azure PowerShell definida.
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
- de trabalho de espera
Também há artigos que se aprofundam nos recursos mostrados no tutorial.
- de modelagem do PowerShell
- consultas
- formatação
- usando trabalhos do PowerShell
Scripts de exemplo
Se você quiser começar imediatamente com tarefas específicas, examine alguns scripts de exemplo.
Realimentação
Se você quiser fazer comentários, sugestões ou fazer perguntas, há várias maneiras de entrar em contato.
-
Send-Feedback
é um comando interno do Azure PowerShell que permite que você forneça comentários de forma livre para a equipe. - Arquive uma solicitação de recurso ou um relatório de bug no do repositório do Azure PowerShell.
- Faça uma pergunta ou obtenha esclarecimentos apresentando um problema no repositório de documentação do Azure PowerShell.
Esperamos que você goste de usar o Azure PowerShell!
Tem algum problema com essa seção? Se tiver, envie seus comentários para que possamos melhorar esta seção.
Azure PowerShell