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 pelo 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.
Iniciar sessão
Se estiver a utilizar uma instalação local do Azure PowerShell, tem de iniciar sessão antes de executar quaisquer outros passos.
Connect-AzAccount
Conclua o processo de login seguindo as etapas exibidas no 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 vão para 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."
Digite 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 splatting 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 que estão 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 algumas 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
. A partir do 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 que a VM está em execução, precisamos nos conectar via Á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
. A partir dessa 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
A partir da sua máquina local, pode executar o seguinte comando para ligar à VM através do Ambiente de Trabalho Remoto.
mstsc.exe /v $publicIp.IpAddress
Para obter mais informações sobre como consultar propriedades de objeto, consulte 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
Você pode ignorar 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á 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 de 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...
Este comando exclui os recursos criados durante o tutorial, e é garantido para desalocá-los na ordem correta. O parâmetro AsJob
impede que o PowerShell seja bloqueado 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 está concluído. Continue para um resumo de tudo o que você aprendeu e links para recursos que irão ajudá-lo com suas próximas etapas.
Resumo
Parabéns;! Você aprendeu como 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 de shell e examinou alguns dos recursos criados para VMs do Azure.
Para onde você vai daqui depende de como você planeja usar o Azure PowerShell. Há uma variedade de materiais que vão mais longe em profundidade sobre os recursos abordados neste tutorial.
Documentação detalhada do Azure PowerShell
Talvez você queira reservar um tempo para explorar a documentação completa do Azure PowerShell conjunto.
Para obter mais informações sobre os comandos usados neste tutorial, consulte os seguintes artigos.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
Há também artigos que se aprofundam nos recursos que foram mostrados no tutorial.
- de splatting do PowerShell
- Consultas
- de formatação
- Usando trabalhos do PowerShell
Exemplos de scripts
Se você quiser começar imediatamente com tarefas específicas, veja alguns scripts de exemplo.
- Serviço de Aplicativo do Azure
- de bancos de dados SQL
- do Cosmos DB
- Amostras repo
Comentários
Se você quiser dar feedback, sugestões ou fazer perguntas, há várias maneiras de entrar em contato.
-
Send-Feedback
é um comando interno para o Azure PowerShell que permite fornecer comentários de forma livre para a equipe. - Arquive uma solicitação de recurso ou um relatório de bug no repositório do Azure PowerShell.
- Faça uma pergunta ou obtenha esclarecimentos arquivando um problema no repositório de documentação do Azure PowerShell.
Esperamos que você goste de usar o Azure PowerShell!
Está com problemas nesta secção? Se sim, envie-nos o seu feedback para que possamos melhorar esta secção.
Azure PowerShell