Automatisieren der Bereitstellung mithilfe der Azure CLI

Abgeschlossen

Die Datenbankautomatisierung ist nicht mehr nur für große Unternehmen vorgesehen; Es ist jetzt für Unternehmen aller Größen unerlässlich, wettbewerbsfähig zu bleiben. Als Datenbankadministrator ist die Automatisierung von Datenbankaufgaben aus mehreren Gründen von entscheidender Bedeutung:

  • Feinkörnige Kontrolle über Anwendungen und Datenbanken
  • Einfache Skalierbarkeit, Effizienzsteigerung bei der Verwaltung zahlreicher Ressourcen
  • Wiederverwenden von Skripts für die Automatisierung von Routineaufgaben
  • Vereinfachte Problembehandlung, wenn GUI-Tools nicht verfügbar sind

Die Azure Command-Line Interface (CLI) ist ein plattformübergreifendes Tool, mit dem Sie Azure-Ressourcen erstellen und verwalten können. Sie können Befehle über das Terminal mit interaktiven Eingabeaufforderungen oder Skripts ausführen.

Azure CLI kann auf Linux-, Mac- oder Windows-Computern installiert werden. Sie können sie auch über einen Browser über das Cloud Shell-Terminal im Azure-Portal oder in einem Docker-Container ausführen.

Die Syntax der Azure CLI folgt dem Muster reference name - command - parameter - parameter value. Das Wechseln zwischen Abonnements ist z. B. eine häufige Aufgabe. Dies ist die Syntax:

az account set --subscription "my subscription name"

Vergleich zwischen PowerShell und der Azure CLI

Azure PowerShell und Azure CLI sind plattformübergreifende Befehlszeilentools, mit denen Sie Azure-Ressourcen unter Windows, macOS und Linux erstellen und verwalten können. Der Hauptunterschied zwischen ihnen liegt in den von ihnen unterstützten Shellumgebungen.

Shellumgebung Azure CLI Azure PowerShell
Befehlszeile Ja
Bash Ja
Windows PowerShell Ja Ja
PowerShell Ja Ja

Um das richtige Tool auszuwählen, berücksichtigen Sie Ihre Erfahrung und Ihre Arbeitsumgebung.

Azure CLI ist ähnlich wie Bash-Skripting, sodass es für Personen, die normalerweise mit Linux-Systemen arbeiten, ziemlich intuitiv macht. Auf der anderen Seite enthält Azure PowerShell Module, die beim Verwalten von Azure-Ressourcen aus PowerShell helfen. PowerShell-Befehle folgen der standardmäßigen Verb-Substantiv-Syntax, wodurch sie sich für diejenigen eignen, die mit Windows-Systemen vertraut sind.

Der folgende Vergleich bietet einen kurzen Überblick über einige häufig verwendete Befehle in der CLI- und der PowerShell-Syntax:

Befehl Azure CLI Azure PowerShell
Über Webbrowser anmelden az login Connect-AzAccount
Verfügbare Abonnements abrufen Liste der az-Konten Get-AzSubscription
Festlegen des Abonnements az account set –subscription Set-AzContext -Subscription
Auflisten aller virtuellen Maschinen az vm list Get-AzVM
Erstellen eines neuen SQL-Servers az sql server create New-AzSqlServer

Bereitstellen einer SQL-Datenbank mithilfe der Azure CLI

Nachfolgend finden Sie ein Beispiel für die Bereitstellung einer SQL-Datenbank und erstellen eine Firewallregel, um den Zugriff von Azure-Diensten mithilfe der Azure CLI zu ermöglichen:

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

Weitere Informationen zu allen verfügbaren Azure SQL-CLI-Befehlen finden Sie unter Azure SQL-CLI-Befehle.

Bereitstellen einer Azure Resource Manager-Vorlage (ARM) mithilfe der Azure CLI und PowerShell

Mit PowerShell haben Sie mehrere Optionen für den Umfang Ihrer Bereitstellung. Sie können Ressourcen für eine Ressourcengruppe, ein Abonnement, eine Verwaltungsgruppe (d. h. eine Sammlung von Abonnements unter einer Azure-Vorlage, die häufig für große unternehmensweite Bereitstellungen verwendet wird) oder einen Mandanten bereitstellen. Azure Resource Manager-Vorlagen sind parametrisiert, sodass Sie Parameter entweder inline oder über eine Parameterdatei übergeben müssen, wie im folgenden Beispiel gezeigt.

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

Die Parameter- und Vorlagendateien können in einem Git-Repository, Azure Blob Storage oder einem anderen zugänglichen Speicherort vom bereitstellenden Computer gespeichert werden.

Azure CLI bietet die gleichen Bereitstellungsbereiche wie PowerShell. Sie können lokale oder Remoteparameterdateien und -vorlagen wie in PowerShell verwenden, wie im folgenden Beispiel gezeigt.

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

Wenn Sie remoteverknüpfte Vorlagen mit einem relativen Pfad bereitstellen möchten, die in einem Speicherkonto gespeichert sind, verwenden Sie zur Angabe des SAS-Tokens „query-string“:

az deployment group create \
  --name linkedTemplateWithRelativePath \
  --resource-group myResourceGroup \
  --template-uri "https://stage20210126.blob.core.windows.net/template-staging/mainTemplate.json" \
  --query-string $sasToken

Hinweis

Derzeit unterstützt Azure CLI die direkte Bereitstellung von Bicep-Dateien auf Remote-Servern nicht. Stattdessen können Sie die Bicep CLI verwenden, um die Bicep-Datei in eine JSON-Vorlage zu konvertieren und dann die JSON-Vorlage von einem Remotespeicherort aus bereitzustellen.