Criar máquinas virtuais com o Azure PowerShell
Neste tutorial, irá aprender todos os passos envolvidos 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.
Pode concluir este tutorial com a experiência interativa disponibilizada através do Azure Cloud Shell, ou pode instalar o Azure PowerShell localmente.
Utilize ctrl-shift-v (cmd-shift-v no macOS) para colar texto de tutorial no Azure Cloud Shell.
Iniciar sessão
Se estiver a utilizar uma instalação local do Azure PowerShell, terá de iniciar sessão antes de realizar qualquer outro passo.
Connect-AzAccount
Conclua o processo de início de sessão, seguindo os passos apresentados no seu terminal.
Criar um grupo de recursos
No Azure, todos os recursos são alocados num grupo de gestão de recursos. Os grupos de recursos oferecem agrupamentos lógicos de recursos para que seja mais fácil trabalhar com os mesmos como uma coleção.
Neste tutorial, todos os recursos criados estão num único grupo com o nome 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 poder criar uma nova máquina virtual, tem de criar um objeto de credencial com o nome de utilizador e a palavra-passe da conta de administrador da VM do Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Introduza o nome de utilizador e a palavra-passe quando solicitados. O objeto de credencial resultante é transmitido como um parâmetro no próximo passo.
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 elevado número de dependências. O Azure PowerShell cria estes recursos por si com base nos argumentos da linha de comandos que especificar. Para legibilidade, estamos a utilizar o splatting do PowerShell para transmitir os parâmetros aos cmdlets do Azure PowerShell.
Crie uma nova máquina virtual com 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
Enquanto a VM é criada, pode ver os valores dos parâmetros utilizados e os recursos do Azure que estão a ser criados. O PowerShell irá apresentar 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 $newVM1
variável.
$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 entre chavetas são objetos aninhados. No próximo passo, vamos mostrar como pode ver valores específicos nestes objetos aninhados.
Obter informações da VM através de consultas
Vamos obter algumas informações mais detalhadas da VM que acabámos de criar. Neste exemplo, verificamos o nome da VM e a conta de administrador criados.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
Podemos utilizar 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 Get-AzNetworkInterface
cmdlet. A partir do objeto da interface de rede resultante, selecionamos o objeto IpConfigurations aninhado. A partir do objeto IpConfigurations, selecionamos as propriedades Name e PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Para confirmar que a VM está em execução, é necessário ligar através do Ambiente de Trabalho Remoto. Para isso, precisamos de 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 $publicIp
variável. A partir desta variável, selecionamos as propriedades e utilizamos uma expressão para obter a propriedade Fqdn aninhada.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
A partir do seu computador 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 a consulta de propriedades de objeto, veja Consultar recursos do Azure.
Criar uma nova VM na sub-rede existente
A segunda VM utiliza 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 $newVM2
objeto. Utilize o seguinte comando para ligar através do Ambiente de Trabalho Remoto.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Limpeza
Agora que concluiu o tutorial, está na altura de limpar os recursos criados. Pode eliminar recursos individuais com o comando Remove-AzResource
, mas a forma mais segura de remover todos os recursos num grupo de recursos é eliminar o grupo com 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 elimina os recursos criados durante o tutorial e desaloca-os garantidamente pela ordem correta. O parâmetro AsJob
impede que o PowerShell bloqueie enquanto a eliminação está em curso. Para aguardar até que a eliminação esteja concluída, utilize o seguinte comando:
Wait-Job -Id $job.Id
Quando a limpeza estiver concluída, o tutorial termina. Continue para ver um resumo de tudo o que aprendeu e obter ligações para recursos que irão ajudá-lo nos passos seguintes.
Resumo
Parabéns! Aprendeu a criar VMs com recursos novos ou existentes, utilizou expressões e outros comandos do Azure PowerShell para capturar dados que são armazenados em variáveis de shell e viu alguns dos recursos que são criados para as VMs do Azure.
O que faz a partir daqui depende de como planeia utilizar o Azure PowerShell. Tem uma variedade de materiais à sua disposição que explicam em maior profundidade as funcionalidades que este tutorial abrange.
Documentação detalhada do Azure PowerShell
Pode querer explorar a documentação completa do Azure PowerShell.
Para obter mais informações sobre os comandos utilizados neste tutorial, veja os artigos seguintes.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
Também existem artigos que aprofundam as funcionalidades que o tutorial apresentou.
Scripts de amostra
Se quiser começar imediatamente a fazer tarefas específicas, veja alguns scripts de exemplo.
Comentários
Se quiser enviar comentários, sugestões ou colocar questões, existem várias formas de entrar em contacto connosco.
Send-Feedback
é um comando incorporado do Azure PowerShell que lhe permite enviar comentários de forma livre à equipa.- Submeta um pedido de funcionalidade ou um relatório de erros no repositório do Azure PowerShell.
- Faça uma pergunta ou obtenha esclarecimentos ao submeter um problema no repositório da 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.