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:

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:

Erstellen Ihrer Pipeline und Bereitstellen Ihrer Vorlage

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt. Erstellen Sie ein Projekt, wenn Sie noch keines haben.

  2. Wechseln Sie zu Pipelines, und wählen Sie dann Pipeline erstellen aus.

  3. 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.

  4. 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.

  5. Wenn die Registerkarte Konfigurieren erscheint, wählen Sie Starter pipeline.

  6. Ersetzen Sie den Inhalt Ihrer Pipeline durch den folgenden Code:

    trigger:
    - none
    
    pool:
      vmImage: 'ubuntu-latest'
    
  7. Erstellen Sie drei Variablen: siteName, administratorLoginund adminPass. adminPass muss eine Geheimnisvariable sein.

    • Wählen Sie Variablen aus.
    • Verwenden Sie das + -Zeichen, um drei Variablen hinzuzufügen. Wählen Sie beim Erstellen adminPassdiesen Wert geheim halten aus.
    • Klicken Sie anschließend auf Speichern .
    Variable Wert Geheimnis?
    siteName mytestsite Nein
    adminUser fabrikam Nein
    adminPass Fqdn:5362! Ja
  8. 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'
    
  9. 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)'
    
  10. 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 festARMPipelinesLAMP-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.jsonfest. 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 als Completesind. 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'
    
  11. 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

  1. Ü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.

    ARM-Vorlagenressourcen im Azure-Portal

    Sie können die Ressourcen auch mithilfe der Azure CLI überprüfen.

    az resource list --resource-group ARMPipelinesLAMP-rg --output table
    
  2. Gehen Sie zu Ihrer neuen Website. Wenn Sie auf siteNamefestlegenarmpipelinetestsite, befindet sich die Website unter https://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, , csmFilecsmParametersFile, overrideParametersund deploymentModeentfernen.

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