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 feitas manualmente. As organizações preferem automatizar essas tarefas para reduzir os custos e evitar erros.

A automação desempenha um papel crucial no exemplo de Gerenciamento de Relacionamento com o Cliente (CRM). Lá, você testa seu software em várias máquinas virtuais (VMs) do Linux que precisam ser excluídas e recriadas frequentemente. Usar um script do PowerShell para automatizar a criação de VMs é mais eficiente e seguro do que realizar o processo manualmente todas as vezes.

Além da operação de criação de VMs, seu script deve atender outros requisitos:

  • Criar vários trabalhos: 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 arquivo de texto que contém comandos e constructos de controle. Os comandos são invocações de cmdlets, e os constructos de controle são recursos de programação, como loops, variáveis, parâmetros, comentários etc., fornecidos pelo PowerShell.

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

Dica

Ao desenvolver 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 o VS Code oferece funcionalidades como destaque de sintaxe e uma lista de cmdlets disponíveis.

A captura de tela a seguir mostra um exemplo do VS Code com um script de amostra para conectar-se 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 na linha de comando do PowerShell, passando o nome do arquivo precedido por um ponto para indicar 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 as variáveis, usar branches e loops, capturar os parâmetros de linha de comando, escrever funções, adicionar comentários entre outros recursos. Para o script que você está desenvolvendo, três características principais são necessárias: 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 igual (=). Por exemplo:

$location = 'eastus'

Para determinar o valor armazenado em uma variável, use o prefixo $ seguido do nome dela:

$location

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

$adminCredential = Get-Credential

Loops

O PowerShell tem várias estruturas de loop, incluindo For, Foreach, Do-Until, Do-While e While. O loop Foreach é uma excelente opção para situações em que você precisa executar um loop em uma série de valores de 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 depois especificar valores para esses parâmetros ao executá-lo. Por exemplo:

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

Dentro do script, armazene esses valores em variáveis. Neste exemplo, os parâmetros são Nome e Localização:

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

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

Combinação de técnicas

Ao combinar as recursos da linguagem PowerShell com os cmdlets do Azure PowerShell, você tem todas as ferramentas necessárias para automatizar tarefas no Azure. No exemplo de CRM, você pode criar várias VMs do Linux usando um script com parâmetros e um loop, simplificando o processo. Esse script permite executar uma operação complexa em uma única etapa.

Script de exemplo

Veja um exemplo de script 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
}

Executando 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>

Com esse script, você pode criar várias VMs de forma eficiente em diferentes grupos de recursos, automatizando tarefas repetitivas e garantindo padronização no ambiente Azure.