Criar um recurso do Azure de forma interativa com o Azure PowerShell

Concluído

No modo interativo, o PowerShell permite que você insira e execute comandos na hora.

No exemplo do Gerenciamento de Relacionamento com o Cliente (CRM), o objetivo é criar três ambientes de teste, cada um com suas próprias máquinas virtuais (VMs). Use grupos de recursos para manter as VMs organizadas em ambientes distintos:

  • Teste de unidade
  • Teste de integração
  • Teste de aceitação

Como você precisa criar os grupos de recursos apenas uma vez, usar o PowerShell de forma interativa para essa tarefa é uma boa opção.

Quando você executa um comando no PowerShell, ele associa o comando a um cmdlet e executa a ação solicitada.

Exemplo: como criar um grupo de recursos com o Azure PowerShell

Vamos realizar uma tarefa comum: criar um grupo de recursos. Os grupos de recursos ajudam a gerenciar coletivamente recursos relacionados, e criar um novo grupo de recursos é geralmente uma das primeiras tarefas ao começar uma nova solução no Azure.

Estas são as três etapas que você precisa seguir:

  1. Conecte-se à sua assinatura do Azure.

  2. Crie o grupo de recursos.

  3. Verifique se o grupo de recursos foi criado com sucesso.

Cada etapa corresponde a um comando diferente do Azure PowerShell.

Conectar-se ao Azure

Ao usar uma instalação local do Azure PowerShell, é necessário autenticar-se antes de executar os comandos do Azure PowerShell. O cmdlet Connect-AzAccount solicita suas credenciais do Azure e, em seguida, conecta-se à sua assinatura do Azure.

Para se conectar de forma interativa, você não precisa especificar nenhum parâmetro:

Connect-AzAccount

Esse comando abre uma janela para inserir suas credenciais do Azure e estabelece uma conexão com a sua assinatura do Azure.

Trabalhar com assinaturas

Se você ainda não está familiarizado com o Azure, você só possui uma assinatura única. No entanto, se você já usa o Azure há algum tempo, já deve ter várias assinaturas. O Azure PowerShell permite que você escolha qual assinatura seus comandos serão executados.

Você só pode estar ativo em uma assinatura de cada vez. Use o cmdlet Get-AzContext para determinar qual assinatura está ativa no momento. Se não for a correta, você pode mudar de assinatura usando o cmdlet Set-AzContext.

  1. Veja a lista de todas as suas assinaturas:

    Get-AzSubscription
    
  2. Verifique a assinatura atual na qual você está conectado:

    Get-AzContext
    
  3. Altere sua assinatura ativa:

    Set-AzContext -Subscription '00000000-0000-0000-0000-000000000000'
    

    Se precisar pesquisar a ID da assinatura, você pode encontrá-la nos resultados do cmdlet Get-AzSubscription.

Criar um grupo de recursos

Ao criar recursos no Azure, você os aloca em um grupo de recursos para fins de gerenciamento.

Para criar um grupo de recursos, use o cmdlet New-AzResourceGroup. Você precisa especificar um nome e uma localização, e o nome deve ser único dentro da sua assinatura. A localização determina o local em que os metadados para seu grupo de recursos são armazenados, o que pode ser relevante por questões de conformidade. Use o cmdlet Get-AzLocation para determinar as localizações disponíveis.

Observação

Se você estiver trabalhando em uma sandbox do Azure, ela criará o grupo de recursos para você. Se preferir trabalhar na sua própria assinatura, use o comando a seguir.

A sintaxe para criar um grupo de recursos é:

New-AzResourceGroup -Name <resource-group-name> -Location <location>

Listar todos os grupos de recursos

Para recuperar uma lista de todos os grupos de recursos na assinatura ativa, use o cmdlet Get-AzResourceGroup.

Get-AzResourceGroup

Para uma exibição mais resumida, você pode direcionar a saída para o cmdlet Format-Table:

Get-AzResourceGroup | Format-Table

Também é possível filtrar a saída para mostrar apenas um grupo de recursos específico:

Get-AzResourceGroup -Name <resource-group-name>

Crie uma Máquina Virtual do Azure

Criar máquinas virtuais (VMs) é uma tarefa comum que pode ser realizada com o Azure PowerShell.

O cmdlet New-AzVM é usado para criar uma VM. Esse cmdlet possui diversos parâmetros para lidar com as extensas configurações de uma VM. A maioria dos parâmetros possui valores padrão adequados, então você geralmente precisa especificar apenas cinco itens principais:

  • ResourceGroupName: o grupo de recursos onde a nova VM será alocada.
  • Nome: o nome da VM no Azure.
  • Localização: a região geográfica onde a VM será provisionada.
  • Credencial: um objeto que contém o nome de usuário e senha para a conta de administração da VM. Use o cmdlet Get-Credential para solicitar um nome de usuário e senha e armazená-los como um objeto de credencial.
  • Imagem: a imagem do sistema operacional a ser usada na VM, que geralmente é uma distribuição do Linux ou Windows Server.

Veja um exemplo:

$azVmParams = @{
    ResourceGroupName = '<resource-group-name>'
    Name              = '<machine-name>'
    Credential        = '<credentials-object>'
    Location          = '<location>'
    Image             = '<image-name>'
}
New-AzVM @azVmParams

Você pode fornecer esses parâmetros como uma tabela de hash com splatting para o cmdlet New-AzVM, como mostrado no exemplo anterior. Como alternativa, você pode fornecer os parâmetros diretamente ao cmdlet New-AzVM ou usar outros cmdlets para configurar a máquina virtual, como Set-AzVMOperatingSystem, Set-AzVMSourceImage, Add-AzVMNetworkInterface e Set-AzVMOSDisk.

Por exemplo, para fornecer os parâmetros diretamente ao cmdlet New-AzVM, use a seguinte sintaxe:

New-AzVM -Name <vm-name> -ResourceGroupName <resource-group-name> -Credential (Get-Credential) ...

Exemplo: como obter informações para uma VM

É possível listar as VMs em sua assinatura com o comando Get-AzVM. Esse comando também permite recuperar uma VM específica ao especificar o parâmetro Name.

Armazene os resultados de Get-AzVM em uma variável:

$vm = Get-AzVM -Name <vm-name> -ResourceGroupName <resource-group-name>

O conteúdo da variável $vm é um objeto com o qual você pode interagir. Por exemplo, você pode fazer mudanças neste objeto e, em seguida, efetuar o push das alterações no Azure usando o comando Update-AzVM:

$resourceGroupName = '<resource-group-name>'
$vm = Get-AzVM -Name <vm-name> -ResourceGroupName $resourceGroupName
$vm.HardwareProfile.vmSize = 'Standard_DS3_v2'

Update-AzVM -ResourceGroupName $resourceGroupName -VM $vm

Usar o PowerShell no modo interativo é indicado para tarefas pontuais. Por exemplo, você pode criar e gerenciar grupos de recursos de forma interativa se eles forem criados somente uma vez durante o ciclo de vida de um projeto. Geralmente, o modo interativo é mais rápido e fácil do que desenvolver um script para tarefas que são executadas apenas uma vez.