Automatiser le déploiement avec Azure CLI

Effectué

L’automatisation des bases de données n’est plus seulement destinée aux grandes entreprises ; il est maintenant essentiel pour les entreprises de toutes tailles de rester compétitives. En tant qu’administrateur de base de données, l’automatisation des tâches de base de données est cruciale pour plusieurs raisons :

  • Contrôle granulaire des applications et des bases de données
  • Extensibilité facile, amélioration de l’efficacité lors de la gestion de nombreuses ressources
  • Réutilisation des scripts pour automatiser les tâches de routine
  • Résolution simplifiée des problèmes lorsque les outils d’interface graphique graphique ne sont pas disponibles

Azure Command-Line Interface (CLI) est un outil multiplateforme qui vous aide à créer et à gérer des ressources Azure. Vous pouvez exécuter des commandes via le terminal à l’aide d’invites interactives ou de scripts.

Azure CLI peut être installé sur des ordinateurs Linux, Mac ou Windows. Vous pouvez également l’exécuter à partir d’un navigateur à l’aide du terminal Cloud Shell sur le portail Azure ou à l’intérieur d’un conteneur Docker.

La syntaxe Azure CLI suit le modèle reference name - command - parameter - parameter value. Par exemple, le basculement entre les abonnements est une tâche courante. Voici la syntaxe :

az account set --subscription "my subscription name"

PowerShell ou Azure CLI

Azure PowerShell et Azure CLI sont des outils en ligne de commande multiplateforme qui vous permettent de créer et de gérer des ressources Azure sur Windows, macOS et Linux. La principale différence entre eux réside dans les environnements shell qu’ils prennent en charge.

Environnement de shell Azure CLI Azure Powershell
Cmd Oui
Bash Oui
Windows PowerShell Oui Oui
PowerShell Oui Oui

Pour choisir l’outil approprié, envisagez votre expérience et votre environnement de travail.

Azure CLI est similaire au script bash, ce qui le rend intuitif pour ceux qui travaillent généralement avec des systèmes Linux. En revanche, Azure PowerShell inclut des modules qui aident à gérer les ressources Azure à partir de PowerShell. Les commandes PowerShell suivent la syntaxe verbe-nom standard, ce qui les rend naturellement adaptées pour ceux qui sont familiers avec les systèmes Windows.

Voici une comparaison rapide de quelques commandes couramment utilisées dans leurs formes CLI et PowerShell :

Commande Azure CLI Azure PowerShell
Se connecter avec un navigateur web az login Connect-AzAccount
Obtenir les abonnements disponibles az account list (liste des comptes) Get-AzSubscription
Définir un abonnement az account set –subscription Set-AzContext -Subscription
Répertorier toutes les machines virtuelles az vm list Get-AzVM
Créer un serveur SQL az sql server create New-AzSqlServer

Déploiement de base de données SQL avec Azure CLI

Voici un exemple de déploiement d’une base de données SQL et de création d’une règle de pare-feu pour autoriser l’accès à partir de services Azure à l’aide d’Azure CLI :

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

Pour en savoir plus sur toutes les commandes Azure SQL CLI disponibles, consultez les commandes Azure SQL CLI.

Déploiement d’un modèle Azure Resource Manager (ARM) avec Azure CLI et PowerShell

Avec PowerShell, vous avez plusieurs options pour l’étendue de votre déploiement. Vous pouvez déployer sur un groupe de ressources, un abonnement, un groupe d'administration, qui consiste en une collection d'abonnements sous le même modèle Azure et est couramment utilisé dans les grands déploiements d'entreprise, ou sur un locataire. Les modèles Azure Resource Manager sont paramétrés, ce qui vous oblige à passer des paramètres inline ou via un fichier de paramètres, comme illustré dans l’exemple suivant.

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

Les fichiers de paramètre et de modèle peuvent être stockés dans un référentiel Git, stockage Blob Azure ou tout autre emplacement accessible à partir de la machine de déploiement.

Azure CLI offre les mêmes options d’étendue de déploiement que PowerShell. Vous pouvez utiliser des fichiers et des modèles de paramètres locaux ou distants, comme vous le feriez avec PowerShell, comme illustré dans l’exemple suivant.

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

Pour déployer des modèles liés à distance avec un chemin relatif et qui sont stockés dans un compte de stockage, utilisez query-string pour spécifier le jeton 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

Notes

Actuellement, Azure CLI ne prend pas directement en charge le déploiement de fichiers Bicep distants. Au lieu de cela, vous pouvez utiliser l’interface CLI Bicep pour convertir le fichier Bicep en modèle JSON, puis déployer le modèle JSON à partir d’un emplacement distant.