Automatización de la implementación mediante la CLI de Azure

Completado

La automatización de bases de datos ya no es solo para grandes empresas; ahora es esencial para que las empresas de todos los tamaños permanezcan competitivas. Como administrador de bases de datos, la automatización de tareas de base de datos es fundamental por varias razones:

  • Control pormenorizado sobre aplicaciones y bases de datos
  • Escalabilidad sencilla, mejora de la eficacia al administrar numerosos recursos
  • Reutilización de scripts para automatizar tareas rutinarias
  • Solución de problemas simplificada cuando las herramientas de GUI no están disponibles

Azure Command-Line Interface (CLI) es una herramienta multiplataforma que le ayuda a crear y administrar recursos de Azure. Puede ejecutar comandos a través del terminal mediante mensajes interactivos o scripts.

La CLI de Azure se puede instalar en equipos Linux, Mac o Windows. También puede ejecutarlo desde un explorador mediante el terminal de Cloud Shell en Azure Portal o dentro de un contenedor de Docker.

La sintaxis de la CLI de Azure sigue el patrón reference name - command - parameter - parameter value. Por ejemplo, cambiar entre suscripciones es una tarea común. Esta es la sintaxis:

az account set --subscription "my subscription name"

PowerShell frente a la CLI de Azure

Azure PowerShell y la CLI de Azure son herramientas de línea de comandos multiplataforma que permiten crear y administrar recursos de Azure en Windows, macOS y Linux. La principal diferencia entre ellos se encuentra en los entornos de shell que admiten.

Entorno de shell CLI de Azure Azure PowerShell
Cmd
Bash
Windows PowerShell
PowerShell

Para elegir la herramienta adecuada, tenga en cuenta su experiencia y su entorno de trabajo.

La CLI de Azure es similar al scripting de Bash, lo que lo hace intuitivo para aquellos que normalmente trabajan con sistemas Linux. Por otro lado, Azure PowerShell incluye módulos que ayudan a administrar recursos de Azure desde PowerShell. Los comandos de PowerShell siguen la sintaxis estándar de verbo-sustantivo, lo que lo convierte en un ajuste natural para aquellos familiarizados con los sistemas Windows.

Esta es una comparación rápida de algunos comandos que se usan habitualmente en sus formularios de la CLI y PowerShell:

Comando CLI de Azure Azure PowerShell
Iniciar sesión con el explorador web az login Connect-AzAccount
Obtener suscripciones disponibles az account list Get-AzSubscription
Definir la suscripción az account set –subscription Set-AzContext -Subscription
Enumeración de todas las máquinas virtuales az vm list Get-AzVM
Creación de un nuevo servidor SQL Server az sql server create New-AzSqlServer

Implementación de SQL Database mediante la CLI de Azure

Este es un ejemplo de cómo implementar una instancia de SQL Database y crear una regla de firewall para permitir el acceso desde servicios de Azure mediante la CLI de 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 obtener más información sobre todos los comandos de la CLI de Azure SQL disponibles, vea Comandos de la CLI de Azure SQL.

Implementación de una plantilla de Azure Resource Manager (ARM) mediante la CLI de Azure y PowerShell

Con PowerShell, tiene varias opciones para el ámbito de la implementación. Puede implementar en un grupo de recursos, una suscripción, un grupo de administración, que es una colección de suscripciones en la misma plantilla de Azure y que se usa habitualmente en implementaciones empresariales grandes o en un inquilino. Las plantillas de Azure Resource Manager están parametrizadas, lo que requiere que pases parámetros en línea o a través de un archivo de parámetros, como se muestra en el ejemplo siguiente.

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
 -TemplateFile c:\MyTemplates\azuredeploy.json `
 -TemplateParameterFile c:\MyTemplates\storage.parameters.json

Los archivos de parámetros y plantillas se pueden almacenar en un repositorio de Git, Azure Blob Storage o en cualquier otra ubicación accesible desde la máquina de implementación.

La CLI de Azure ofrece las mismas opciones de ámbito de implementación que PowerShell. Puede usar plantillas y archivos de parámetros locales o remotos, como lo haría con PowerShell, como se muestra en el ejemplo siguiente.

az deployment group create --resource-group ExampleResourceGroup --template-file '\path\template.json'

Para implementar plantillas vinculadas remotas con una ruta de acceso relativa que estén almacenadas en una cuenta de almacenamiento, use consulta-cadena para especificar el token de 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

Nota

Actualmente, la CLI de Azure no admite la implementación directa de archivos remotos de Bicep. En su lugar, puede usar la CLI de Bicep para convertir el archivo de Bicep en una plantilla JSON y, a continuación, implementar la plantilla JSON desde una ubicación remota.