Automatización de la implementación mediante la CLI de Azure
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 | Sí | |
| Bash | Sí | |
| Windows PowerShell | Sí | Sí |
| PowerShell | Sí | Sí |
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.