Freigeben über


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) durch Bereitstellen einer Linux-Web-App mit MySQL. ARM-Vorlagen bieten Ihnen eine Möglichkeit, Ihre Konfiguration im Code zu speichern. Die Verwendung einer ARM-Vorlage ist ein Beispiel für Infrastruktur als Code und eine gute DevOps-Methode.

Eine ARM-Vorlage ist eine JSON-Datei (JavaScript Object Notation), die die Infrastruktur und Konfiguration für Ihr Projekt definiert. 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:

Code abrufen

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 Sie Ihre Pipeline und stellen Sie Ihre Vorlage bereit

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt. Erstellen Sie ein Projekt , wenn Sie noch kein Projekt 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 umgeleitet, 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/.

    Hinweis

    Möglicherweise werden Sie zu GitHub umgeleitet, um die Azure Pipelines-App zu installieren. Wenn ja, wählen Sie "Genehmigen" und "Installieren" aus.

  5. Wenn die Registerkarte "Konfigurieren" angezeigt wird, wählen Sie Starter pipeline.

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

    trigger:
      - none
    
    pool:
      vmImage: 'ubuntu-latest'
    
  7. Erstellen Sie Pipelinevariablen für siteName, administratorLoginund administratorLoginPassword. Die Kennwortvariable sollte als geheim markiert werden.

    • Wählen Sie "Variablen " auf der Pipelineseite aus.
    • Verwenden Sie die + Schaltfläche, um Variablen hinzuzufügen.
    • Wählen Sie für administratorLoginPassword" Diesen Wert geheim halten" aus.
  8. Fügen Sie der YAML-Datei die Aufgabe "Dateien kopieren" hinzu:

    trigger:
      - none
    
    pool:
      vmImage: 'ubuntu-latest'
    
    steps:
      - task: CopyFiles@2
        inputs:
          SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/'
          Contents: '**'
          TargetFolder: '$(Build.ArtifactStagingDirectory)'
    
  9. Hinzufügen und Konfigurieren der Bereitstellungsaufgabe der Azure-Ressourcengruppe :

    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 $(administratorLogin) -administratorLoginPassword $(administratorLoginPassword)'
          deploymentMode: 'Incremental'
    
  10. Klicken Sie auf "Speichern" und "Ausführen" , um Ihre Vorlage bereitzustellen. Der Pipelineauftrag wird gestartet, und nach ein paar Minuten, abhängig von Ihrem Agent, sollte der Auftragsstatus Success angegeben werden.

Überprüfen der bereitgestellten Ressourcen

  1. Stellen Sie sicher, dass die bereitgestellten Ressourcen einsatzbereit sind. Wechseln Sie zur ARMPipelinesLAMP-rg Ressourcengruppe im Azure-Portal, und stellen Sie sicher, dass App Service, App Service Plan und Azure Database für 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. Wechseln Sie zu Ihrer neuen Website. Wenn Sie siteName auf armpipelinetestsite festlegen, 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 Resource Group Deployment-Aufgabe in DeleteRG. Sie können auch die Eingaben für templateLocation, csmFile, csmParametersFile, overrideParameters und deploymentMode entfernen.

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