Criar recursos do Azure com o Azure PowerShell usando um script

Concluído

Tarefas complexas ou repetitivas podem ser demoradas e propensas a erros quando executadas manualmente. As organizações preferem automatizar essas tarefas para reduzir custos e evitar erros.

A automação é essencial no exemplo de Customer Relationship Management (CRM), onde você está testando seu software em várias máquinas virtuais (VMs) Linux que precisam ser continuamente excluídas e recriadas. Usar um script do PowerShell para automatizar a criação de VMs é muito mais eficiente e confiável do que criá-los manualmente a cada vez.

Além da operação principal de criar uma VM, seu script precisa atender a alguns outros requisitos:

  • Criar várias VMs: use New-AzVM para criar várias VMs com nomes exclusivos.
  • Parâmetro do grupo de recursos: permita que o script aceite o nome do grupo de recursos como um parâmetro.

Nesta unidade, você aprenderá a escrever e executar um script do PowerShell que atenda a esses requisitos.

O que é um script do PowerShell?

Um script do PowerShell é um ficheiro de texto que contém comandos e construções de controlo. Os comandos são invocações de cmdlets e as construções de controle são recursos de programação como loops, variáveis, parâmetros, comentários, etc. fornecidos pelo PowerShell.

Os arquivos de script do PowerShell têm uma extensão de .ps1 arquivo. Você pode criar e salvar esses arquivos usando qualquer editor de texto.

Gorjeta

Se você estiver escrevendo scripts do PowerShell, considere usar o Visual Studio Code (VS Code), que é gratuito e compatível com Windows, Linux e macOS. A extensão do PowerShell para VS Code oferece recursos como realce de sintaxe e uma lista de cmdlets disponíveis.

A captura de tela a seguir é um exemplo de VS Code com um script de exemplo para se conectar ao Azure e criar uma máquina virtual:

Captura de tela do VS Code com um script do PowerShell para criar uma máquina virtual no Azure.

Depois de criar um script, você pode executá-lo a partir da linha de comando do PowerShell passando o nome do arquivo precedido por um ponto para o diretório atual e uma barra invertida:

.\myScript.ps1

Técnicas do PowerShell

O PowerShell inclui recursos comumente encontrados em linguagens de programação. Você pode definir variáveis, usar ramificações e loops, capturar parâmetros de linha de comando, escrever funções, adicionar comentários e muito mais. Para o script em que você está se concentrando, você precisa de três recursos principais: variáveis, loops e parâmetros.

Variáveis

No PowerShell, as variáveis são declaradas usando o cifrão ($) e os valores atribuídos usando o operador equals (=). Por exemplo:

$location = 'eastus'

Para determinar o valor armazenado em uma variável, use o prefixo $ e seu nome:

$location

As variáveis podem conter objetos. Por exemplo, a definição a seguir define a $adminCredential variável como o objeto retornado pelo Get-Credential cmdlet:

$adminCredential = Get-Credential

Ciclos

O PowerShell tem várias estruturas de loop, incluindo For, Foreach, Do-Until, Do-Whilee While. O Foreach loop é uma boa opção para cenários em que você precisa executar um loop sobre um conjunto de valores em uma coleção.

$items = 'web','app','sql'
foreach ($item in $items) {
    $item
}

Parâmetros

Ao criar um script do PowerShell, você pode adicionar parâmetros ao script e, em seguida, especificar valores para esses parâmetros ao executar o script. Por exemplo:

.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus

Dentro do script, capture os valores em variáveis. Neste exemplo, os parâmetros são Name e Location:

param (
    [string[]]$Name,
    [string]$Location
)

Você pode usar esses parâmetros como entrada e um loop para criar um conjunto de VMs com base nos parâmetros fornecidos. Essa abordagem mantém o script genérico e evita repetir o mesmo código.

Combinação de técnicas

A combinação de recursos de linguagem do PowerShell e cmdlets do Azure PowerShell fornece todas as ferramentas necessárias para automatizar tarefas do Azure. No exemplo do CRM, você pode criar várias VMs Linux usando um script parametrizado e um loop para simplificar o processo. Esse script permite que você execute uma operação complexa em uma única etapa.

Script de exemplo

Aqui está um script de exemplo que demonstra o uso de variáveis, loops e parâmetros para criar várias VMs:

param (
    [string[]]$Name = 'web','app','sql',
    [string]$ResourceGroupName,
    [string]$Location = 'eastus'
)

$adminCredential = Get-Credential

foreach ($vm in $Name) {
    $azVmParams = @{
        ResourceGroupName   = $ResourceGroupName
        Name                = $vm
        Credential          = $adminCredential
        Location            = $Location
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = $vm
    }
    New-AzVM @azVmParams
}

Executar o script

Salve o script como CreateVMs.ps1 e execute-o a partir da linha de comando do PowerShell, fornecendo os parâmetros necessários:

.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>

Usando esse script, você pode criar com eficiência várias VMs em diferentes grupos de recursos, automatizando tarefas repetitivas e garantindo a consistência em seu ambiente do Azure.