Automatizar a implantação usando a CLI do Azure
A automação de banco de dados não é mais apenas para grandes empresas; agora é essencial para empresas de todos os tamanhos se manterem competitivas. Como administrador de banco de dados, a automatização de tarefas de banco de dados é crucial por vários motivos:
- Controle granular sobre aplicativos e bancos de dados
- Escalabilidade fácil, aumentando a eficiência ao gerenciar vários ativos
- Reutilização de scripts para automatizar tarefas rotineiras
- Solução de problemas simplificada quando as ferramentas de GUI não estão disponíveis
A CLI (Interface de Command-Line) do Azure é uma ferramenta multiplataforma que ajuda você a criar e gerenciar recursos do Azure. Você pode executar comandos por meio do terminal usando prompts ou scripts interativos.
A CLI do Azure pode ser instalada em computadores Linux, Mac ou Windows. Você também pode executá-lo em um navegador usando o terminal do Cloud Shell no portal do Azure ou dentro de um contêiner do Docker.
A sintaxe da CLI do Azure segue o padrão simples reference name - command - parameter - parameter value. Por exemplo, alternar entre assinaturas é uma tarefa comum. Esta é a sintaxe:
az account set --subscription "my subscription name"
PowerShell versus CLI do Azure
O Azure PowerShell e a CLI do Azure são ferramentas de linha de comando multiplataforma que permitem criar e gerenciar recursos do Azure no Windows, macOS e Linux. A diferença principal entre eles está nos ambientes de shell que eles suportam.
| Ambiente de Shell | CLI do Azure | Azure PowerShell |
|---|---|---|
| Cmd | Sim | |
| Bash | Sim | |
| Windows PowerShell | Sim | Sim |
| PowerShell | Sim | Sim |
Para escolher a ferramenta certa, considere sua experiência e seu ambiente de trabalho.
A CLI do Azure é semelhante ao script bash, tornando-a intuitiva para aqueles que normalmente trabalham com sistemas Linux. Por outro lado, o Azure PowerShell inclui módulos que ajudam a gerenciar recursos do Azure do PowerShell. Os comandos do PowerShell seguem a sintaxe padrão de verbo-substantivo, tornando-se uma escolha natural para aqueles familiarizados com sistemas Windows.
Veja uma comparação rápida de alguns comandos mais usados nos formulários da CLI e do PowerShell:
| Comando | CLI do Azure | Azure PowerShell |
|---|---|---|
| Entrar com o Navegador da Web | az login | Connect-AzAccount |
| Obter assinaturas disponíveis | az account list | Get-AzSubscription |
| Definir Assinatura | az account set –subscription | Set-AzContext -Subscription (comando para definir o contexto de assinatura no Azure) |
| Listar todas as máquinas virtuais | az vm list | Get-AzVM |
| Criar um novo SQL Server | az sql server create | New-AzSqlServer |
Implantação do Banco de Dados SQL usando a CLI do Azure
Aqui está um exemplo de como implantar um Banco de Dados SQL e criar uma regra de firewall para permitir o acesso dos serviços do Azure usando a CLI do Azure:
let "randomIdentifier=$RANDOM*$RANDOM"
$resourceGroup = "<your resource group>"
$location = "<your location preference>"
$server = "dp300-sql-server-$randomIdentifier"
$login = "sqladmin"
$password = "Pa$$w0rD-$randomIdentifier"
az sql server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password
az sql server firewall-rule create --resource-group $resourceGroup --server $server -n AllowYourIp --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
Para saber mais sobre todos os comandos da CLI para o SQL do Azure disponíveis, confira Comandos da CLI para o SQL do Azure.
Implantação do modelo do ARM (Azure Resource Manager) usando a CLI do Azure e o PowerShell
Com o PowerShell, você tem várias opções para o escopo da implantação. Você pode implantar em um grupo de recursos, uma assinatura, um grupo de gerenciamento, que é uma coleção de assinaturas sob o mesmo modelo do Azure e comumente utilizado em grandes implantações empresariais, ou em um locatário. Os modelos do Azure Resource Manager são parametrizados, exigindo que você passe parâmetros embutidos ou por meio de um arquivo de parâmetro, conforme mostrado no exemplo a seguir.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-TemplateParameterFile c:\MyTemplates\storage.parameters.json
Os arquivos de parâmetro e modelo podem ser armazenados em um repositório Git, no Armazenamento de Blobs do Azure ou em qualquer outro local acessível do computador de implantação.
A CLI do Azure oferece as mesmas opções de escopo de implantação que o PowerShell. Você pode usar arquivos e modelos de parâmetro local ou remoto, da mesma forma que faria com o PowerShell, conforme mostrado no exemplo a seguir.
az deployment group create --resource-group ExampleResourceGroup --template-file '\path\template.json'
Para implantar modelos vinculados remotos com caminho relativo armazenados em uma conta de armazenamento, use query-string para especificar o token SAS:
az deployment group create \
--name linkedTemplateWithRelativePath \
--resource-group myResourceGroup \
--template-uri "https://stage20210126.blob.core.windows.net/template-staging/mainTemplate.json" \
--query-string $sasToken
Observação
Atualmente, a CLI do Azure não dá suporte à implantação de arquivos Bicep remotos diretamente. Em vez disso, você pode usar a CLI do Bicep para converter o arquivo Bicep em um modelo JSON e, em seguida, implantar o modelo JSON de um local remoto.