Démarrage rapide : Utiliser un modèle ARM pour déployer une application web Linux sur Azure

Azure DevOps Services

Prise en main des modèles Azure Resource Manager (modèles ARM) en déployant une application web Linux avec MySQL. Les modèles ARM vous permettent d’enregistrer votre configuration dans le code. L’utilisation d’un modèle ARM est un exemple d’infrastructure en tant que code et une bonne pratique DevOps.

Un modèle ARM est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Dans la syntaxe déclarative, vous décrivez le déploiement souhaité sans écrire la séquence de commandes de programmation pour créer le déploiement.

Vous pouvez utiliser la syntaxe JSON ou Bicep pour déployer des ressources Azure. En savoir plus sur la différence entre JSON et Bicep pour les modèles.

Prerequisites

Avant de commencer, vous avez besoin des éléments suivants :

Obtenir le code

Forkez ce dépôt sur GitHub :

https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/webapp-linux-managed-mysql

Vérifier le modèle

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure.

Le modèle définit plusieurs ressources :

Créer votre pipeline et déployer votre modèle

  1. Connectez-vous à votre organisation Azure DevOps et accédez à votre projet. Créez un projet si vous n’en avez pas déjà un.

  2. Accédez à Pipelines, puis sélectionnez Créer un pipeline.

  3. Sélectionnez GitHub comme emplacement de votre code source.

    Note

    Vous pouvez être redirigé vers GitHub pour vous connecter. Si c’est le cas, entrez vos informations d’identification GitHub.

  4. Lorsque la liste des référentiels s’affiche, sélectionnez yourname/azure-quickstart-templates/.

    Note

    Vous pouvez être redirigé vers GitHub pour installer l’application Azure Pipelines. Si c’est le cas, sélectionnez Approuver et installer.

  5. Lorsque l’onglet Configurer s’affiche, sélectionnez Starter pipeline.

  6. Remplacez le contenu de votre pipeline par ce code :

    trigger:
      - none
    
    pool:
      vmImage: 'ubuntu-latest'
    
  7. Créer des variables de pipeline pour siteName, administratorLoginet administratorLoginPassword. La variable de mot de passe doit être marquée comme secret.

    • Sélectionnez Variables dans la page de pipeline.
    • Utilisez le + bouton pour ajouter des variables.
    • Pour administratorLoginPassword, sélectionnez Conserver ce secret de valeur.
  8. Ajoutez la tâche Copier des fichiers au fichier YAML :

    trigger:
      - none
    
    pool:
      vmImage: 'ubuntu-latest'
    
    steps:
      - task: CopyFiles@2
        inputs:
          SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/'
          Contents: '**'
          TargetFolder: '$(Build.ArtifactStagingDirectory)'
    
  9. Ajoutez et configurez la tâche de déploiement de groupe de ressources Azure :

    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. Cliquez sur Enregistrer et exécuter pour déployer votre modèle. La tâche de pipeline est lancée et après quelques minutes, selon votre agent, l’état du travail doit indiquer Success.

Passer en revue les ressources déployées

  1. Vérifiez que les ressources sont déployées. Accédez au groupe de ressources ARMPipelinesLAMP-rg dans le portail Azure et vérifiez que vous voyez les ressources App Service, App Service Plan et Azure Database pour MySQL serveur.

    Ressources de modèle ARM dans le portail Azure

    Vous pouvez également vérifier les ressources à l’aide d’Azure CLI.

    az resource list --resource-group ARMPipelinesLAMP-rg --output table
    
  2. Accédez à votre nouveau site. Si vous définissez siteName sur armpipelinetestsite, le site se trouve à l’emplacement https://armpipelinetestsite.azurewebsites.net/.

Nettoyer les ressources

Vous pouvez également utiliser un modèle ARM pour supprimer des ressources. Modifiez la action valeur de votre tâche de déploiement de groupe de ressources Azure sur DeleteRG. Vous pouvez également supprimer les entrées pour templateLocation, , csmFilecsmParametersFile, overrideParameterset deploymentMode.

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>'

Étapes suivantes