Exercício - Criar um recurso do Azure interativamente com o Azure PowerShell
No cenário original, você deve criar máquinas virtuais (VMs) para testar seu software CRM (Customer Relationship Management). Quando uma nova compilação estiver disponível, você deseja criar uma nova VM para testar toda a experiência de instalação a partir de uma imagem limpa. Quando o teste estiver concluído, você poderá excluir a VM.
Vamos tentar os comandos para criar uma VM.
Observação
Este exercício é opcional. Se quiser concluir este exercício, terá de criar uma subscrição do Azure antes de começar. Se você não tiver uma conta do Azure ou não quiser criar uma no momento, leia as instruções para entender as informações que estão sendo apresentadas.
Observação
Você precisa usar um grupo de recursos para concluir as etapas deste exercício. Você pode usar um grupo de recursos que já criou ou pode criar um novo grupo de recursos especificamente para este exercício. Se você optar por criar um novo grupo de recursos, isso facilitará a limpeza de todos os recursos criados ao concluir o exercício. Se você não tiver um grupo de recursos existente ou quiser criar um novo especificamente para este exercício, siga as etapas em Usar o portal do Azure e o Gerenciador de Recursos do Azure para gerenciar grupos de recursos para criar um grupo de recursos usando o portal do Azure, ou você pode seguir as etapas em Gerenciar grupos de recursos do Azure usando a CLI do Azure para criar um grupo de recursos usando a CLI do Azure.
Criar uma VM do Linux com o Azure PowerShell
Veja como criar uma nova VM do Azure com o Azure PowerShell:
Use o
New-AzVMcmdlet para criar a VM.- Especifique o grupo de recursos para a sua VM.
- Nomeie a VM, seguindo os padrões de nomenclatura da sua organização.
- Escolha um local próximo de si na lista de regiões Azure disponíveis.
- Use a imagem do Ubuntu Linux:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest. - Use o
Get-Credentialcmdlet para definir as credenciais de administrador da VM. - Adicione o parâmetro OpenPorts com porta
22para acesso SSH. - Crie um nome de endereço IP público para entrada SSH.
$azVmParams = @{ ResourceGroupName = 'myResourceGroupName' Name = 'testvm-eus-01' Credential = (Get-Credential) Location = 'eastus' Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 PublicIpAddressName = 'testvm-eus-01' } New-AzVm @azVmParamsSubstitua myResourceGroupName no exemplo anterior pelo nome de um grupo de recursos existente, ou pelo nome do grupo de recursos que criou para este exercício.
Gorjeta
Você pode usar o botão Copiar para copiar comandos para a área de transferência. Para colar, clique com o botão direito do mouse em uma nova linha no terminal do Cloud Shell e selecione Colar, ou use o atalho de teclado Shift+Insert (⌘+V no macOS).
Insira as credenciais:
Quando solicitado, digite um nome de usuário e senha, seguindo as diretrizes: as senhas devem ter de 12 a 123 caracteres e atender a três dos quatro requisitos de complexidade a seguir: caracteres minúsculos, caracteres maiúsculos, dígitos e caracteres especiais (correspondência Regex [\W_]). Para obter mais informações, consulte Linux VM FAQ.
Aguarde a criação da VM:
O processo de criação da VM leva alguns minutos para ser concluído.
Consulte a VM:
Quando terminar, consulte a VM e atribua o objeto VM a uma variável (
$vm).$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName myResourceGroupNameExibir informações sobre a VM:
Para exibir informações sobre a VM, exiba o conteúdo da variável.
$vmSaída de exemplo:
ResourceGroupName : myResourceGroupName Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/testvm-eus-01 VmId : 00000000-0000-0000-0000-000000000000 Name : testvm-eus-01 Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} ...Inspecione as propriedades da VM:
Você pode inspecionar objetos complexos por meio do operador de acesso de membro (
.). Por exemplo, para ver as propriedades no objeto associado àVMSizeseção HardwareProfile , execute o seguinte comando:$vm.HardwareProfileOu, para obter informações em um dos discos, execute o seguinte comando:
$vm.StorageProfile.OsDiskObtenha tamanhos de VM disponíveis:
Passe o objeto VM para outros cmdlets para obter tamanhos disponíveis:
$vm | Get-AzVMSizeObtenha o endereço IP público:
Recupere o endereço IP público para se conectar à VM e armazená-lo em uma variável.
$ip = Get-AzPublicIpAddress -ResourceGroupName myResourceGroupName -Name testvm-eus-01Conecte-se à VM:
Conecte-se à VM com SSH usando o endereço IP da variável. Por exemplo, se o nome de usuário for
bob, use o seguinte comando:ssh bob@$($ip.IpAddress)Saia ao escrever exit.
Eliminar uma VM
Para tentar mais comandos, vamos excluir a VM. Siga estes passos:
Desligue a VM:
Execute o seguinte comando:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameDigite Y e pressione Enter quando solicitado a continuar.
Elimine a VM:
Quando a VM parar, exclua-a executando o
Remove-AzVMcmdlet.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupNameDigite Y e pressione Enter quando solicitado a continuar.
Liste todos os recursos no grupo de recursos:
Use o
Get-AzResourcecmdlet para listar todos os recursos no grupo de recursos. Os resultados são canalizados paraSelect-Objectretornar propriedades específicas:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupNameVocê deve ver vários recursos, incluindo discos, redes virtuais, etc., que ainda existem:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts myResourceGroupName testvm-eus-01 Microsoft.Network/virtualNetworks myResourceGroupName testvm-eus-01 Microsoft.Network/publicIPAddresses myResourceGroupName testvm-eus-01 Microsoft.Network/networkSecurityGroups myResourceGroupName testvm-eus-01 Microsoft.Network/networkInterfaces myResourceGroupName testvm-eus-01_OsDisk_1 Microsoft.Compute/disks myResourceGroupNameO
Remove-AzVMcomando exclui apenas a VM. Não limpa nenhum dos outros recursos. Para limpá-los manualmente, siga estas etapas:Exclua a interface de rede:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterfaceDigite Y e pressione Enter quando solicitado a continuar.
Exclua o grupo de segurança de rede:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroupDigite Y e pressione Enter quando solicitado a continuar.
Exclua o endereço IP público:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddressDigite Y e pressione Enter quando solicitado a continuar.
Exclua a rede virtual:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetworkDigite Y e pressione Enter quando solicitado a continuar.
Exclua os discos do sistema operacional gerenciado:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDiskDigite Y e pressione Enter quando solicitado a continuar.
Verifique se todos os recursos foram removidos:
Verifique o grupo de recursos para garantir que todos os recursos sejam removidos:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Enquanto você executava esses comandos interativamente, uma abordagem melhor é escrever um script do PowerShell. Os scripts permitem que você reutilize a lógica para criar ou excluir uma VM no futuro
Em seguida, vamos ver como automatizar essas tarefas usando um script do PowerShell.