Schnellstart: Verwenden einer ARM-Vorlage zum Bereitstellen einer Linux-Web-App in Azure
Azure DevOps Services
Erste Schritte mit Azure Resource Manager-Vorlagen (ARM-Vorlagen), indem Sie eine Linux-Web-App mit MySQL bereitstellen. ARM-Vorlagen bieten Ihnen eine Möglichkeit, Ihre Konfiguration im Code zu speichern. Die Verwendung einer ARM-Vorlage ist ein Beispiel für Infrastructure-as-Code und eine gute DevOps-Methode.
Eine ARM-Vorlage ist eine JSON-Datei (JavaScript Object Notation), in der die Infrastruktur und die Konfiguration für Ihr Projekt definiert sind. Die Vorlage verwendet eine deklarative Syntax. In deklarativer Syntax beschreiben Sie Ihre beabsichtigte Bereitstellung, ohne die Reihenfolge der Programmierbefehle zur Erstellung der Bereitstellung zu schreiben.
Sie können entweder JSON- oder Bicep-Syntax verwenden, um Azure-Ressourcen bereitzustellen. Erfahren Sie mehr über den Unterschied zwischen JSON und Bicep für Vorlagen.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie Folgendes:
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine aktive Azure DevOps-Organisation. Registrieren Sie sich für Azure Pipelines.
- (Für Bicep-Bereitstellungen) Eine vorhandene Ressourcengruppe. Erstellen einer Ressourcengruppe mit Azure portal, Azure CLI oder Azure PowerShell.
Abrufen des Codes
Forken Sie dieses Repository auf GitHub:
https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/webapp-linux-managed-mysql
Überprüfen der Vorlage
Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen.
Die Vorlage definiert mehrere Ressourcen:
- Microsoft.Web/serverfarms
- Microsoft.Web/sites
- Microsoft.DBforMySQL/servers
- Microsoft.DBforMySQL/servers/firewallrules
- Microsoft.DBforMySQL/servers/databases
Erstellen Ihrer Pipeline und Bereitstellen Ihrer Vorlage
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt. Erstellen Sie ein Projekt, wenn Sie noch keines haben.
Wechseln Sie zu Pipelines, und wählen Sie dann Pipeline erstellen aus.
Wählen Sie GitHub als Speicherort für Ihren Quellcode aus.
Hinweis
Möglicherweise werden Sie zu GitHub weitergeleitet, um sich anzumelden. Geben Sie in diesem Fall Ihre Anmeldeinformationen für GitHub ein.
Wenn die Liste der Repositorys angezeigt wird, wählen Sie
yourname/azure-quickstart-templates/
aus.Hinweis
Sie werden möglicherweise zu GitHub weitergeleitet, um die Azure Pipelines-App zu installieren. Wenn dies der Fall ist, wählen Sie Approve and install (Zustimmen und installieren) aus.
Wenn die Registerkarte Konfigurieren erscheint, wählen Sie
Starter pipeline
.Ersetzen Sie den Inhalt Ihrer Pipeline durch den folgenden Code:
trigger: - none pool: vmImage: 'ubuntu-latest'
Erstellen Sie drei Variablen:
siteName
,administratorLogin
undadminPass
.adminPass
muss eine Geheimnisvariable sein.- Wählen Sie Variablen aus.
- Verwenden Sie das
+
-Zeichen, um drei Variablen hinzuzufügen. Wählen Sie beim ErstellenadminPass
diesen Wert geheim halten aus. - Klicken Sie anschließend auf Speichern .
Variable Wert Geheimnis? siteName mytestsite
Nein adminUser fabrikam
Nein adminPass Fqdn:5362!
Ja Ordnen Sie die Geheimnisvariable
$(adminPass)
so zu, dass sie in Ihrer Azure-Ressourcengruppenbereitstellungsaufgabe verfügbar ist. Ordnen$(adminPass)
Sie oben in ihrer YAML-Datei zu zu$(ARM_PASS)
.variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest'
Fügen Sie der YAML-Datei die Aufgabe Dateien kopieren hinzu. Sie verwenden das
101-webapp-linux-managed-mysql
Projekt. Weitere Informationen finden Sie unter Erstellen einer Web-App unter Linux mit Azure Database for MySQL-Repository .variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)'
Fügen Sie die Aufgabe Azure Resource Group Deployment hinzu und konfigurieren Sie sie.
Die Aufgabe verweist sowohl auf das Artefakt, das Sie mit der Aufgabe Dateien kopieren erstellt haben, als auch auf Ihre Pipelinevariablen. Legen Sie diese Werte beim Konfigurieren Ihrer Aufgabe fest.
- Bereitstellungsbereich (deploymentScope): Legen Sie den Bereitstellungsbereich auf fest
Resource Group
. Sie können als Ziel für Ihre Bereitstellung eine Verwaltungsgruppe, ein Azure-Abonnement oder eine Ressourcengruppe auswählen. - Azure Resource Manager-Verbindung (azureResourceManagerConnection):Wählen Sie Ihre Azure Resource Manager-Dienstverbindung aus. Wählen Sie zum Konfigurieren einer neuen Dienstverbindung das Azure-Abonnement aus der Liste aus, und klicken Sie auf Authorize. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Microsoft Azure
- Abonnement (subscriptionId):Wählen Sie das Abonnement aus, in das die Bereitstellung gehen soll.
- Aktion (Aktion): Legen Sie auf fest
Create or update resource group
, um eine neue Ressourcengruppe zu erstellen oder eine vorhandene zu aktualisieren. - Ressourcengruppe: Legen Sie auf fest
ARMPipelinesLAMP-rg
, um Ihre neue Ressourcengruppe zu benennen. Wenn es sich um eine vorhandene Ressourcengruppe handelt, wird sie aktualisiert. - Location(location): Speicherort für die Bereitstellung der Ressourcengruppe. Legen Sie auf Ihren nächstgelegenen Standort fest (z. B. USA, Westen). Wenn die Ressourcengruppe bereits in Ihrem Abonnement existiert, wird dieser Wert ignoriert.
- Vorlagenspeicherort (templateLocation):Legen Sie auf fest
Linked artifact
. Dies ist der Speicherort Ihrer Vorlage und der Parameterdateien. - Vorlage (csmFile):Legen Sie auf
$(Build.ArtifactStagingDirectory)/azuredeploy.json
fest. Dies ist der Pfad zur ARM-Vorlage. - Vorlagenparameter (csmParametersFile):Legen Sie auf fest
$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json
. Dies ist der Pfad zur Parameterdatei für Ihre ARM-Vorlage. - Überschreiben von Vorlagenparametern (overrideParameters): Legen Sie auf fest
-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)
, um die zuvor erstellten Variablen zu verwenden. Diese Werte ersetzen die parameter, die in der Vorlagenparameterdatei festgelegt sind. - Bereitstellungsmodus (deploymentMode): Die Art und Weise, wie Ressourcen bereitgestellt werden sollen. Legen Sie diese Option auf
Incremental
fest. Inkrementell behält Ressourcen bei, die sich nicht in der ARM-Vorlage befinden und schneller alsComplete
sind.Validate
im Modus können Sie Probleme mit der Vorlage vor der Bereitstellung finden.
variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: AzureResourceManagerTemplateDeployment@3 inputs: deploymentScope: 'Resource Group' azureResourceManagerConnection: '<your-resource-manager-connection>' subscriptionId: '<your-subscription-id>' action: 'Create Or Update Resource Group' resourceGroupName: 'ARMPipelinesLAMP-rg' location: '<your-closest-location>' templateLocation: 'Linked artifact' csmFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.json' csmParametersFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json' overrideParameters: '-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)' deploymentMode: 'Incremental'
- Bereitstellungsbereich (deploymentScope): Legen Sie den Bereitstellungsbereich auf fest
Klicken Sie auf Speichern und ausführen , um Ihre Vorlage bereitzustellen. Der Pipeline-Auftrag wird gestartet und nach einigen Minuten, je nach Agent, sollte der Auftragsstatus
Success
anzeigen.
Überprüfen der bereitgestellten Ressourcen
Überprüfen Sie, ob die Ressourcen bereitgestellt wurden. Wechseln Sie zur
ARMPipelinesLAMP-rg
Ressourcengruppe im Azure-Portal, und überprüfen Sie, ob App Service, App Service Plan und Azure Database for MySQL Serverressourcen angezeigt werden.Sie können die Ressourcen auch mithilfe der Azure CLI überprüfen.
az resource list --resource-group ARMPipelinesLAMP-rg --output table
Gehen Sie zu Ihrer neuen Website. Wenn Sie auf
siteName
festlegenarmpipelinetestsite
, befindet sich die Website unterhttps://armpipelinetestsite.azurewebsites.net/
.
Bereinigen von Ressourcen
Sie können auch eine ARM-Vorlage verwenden, um Ressourcen zu löschen. Ändern Sie den action
Wert in Ihrer Azure-Ressourcengruppenbereitstellungsaufgabe in DeleteRG
. Sie können auch die Eingaben für templateLocation
, , csmFile
csmParametersFile
, overrideParameters
und deploymentMode
entfernen.
variables:
ARM_PASS: $(adminPass)
trigger:
- none
pool:
vmImage: 'ubuntu-latest'
steps:
- task: CopyFiles@2
inputs:
SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '<your-resource-manager-connection>'
subscriptionId: '<your-subscription-id>'
action: 'DeleteRG'
resourceGroupName: 'ARMPipelinesLAMP-rg'
location: ''<your-closest-location>'
Nächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für