Självstudie: Kontinuerlig integrering av ARM-mallar med Azure Pipelines

I den föregående självstudien distribuerar du en länkad mall. I den här självstudien får du lära dig hur du använder Azure Pipelines för att kontinuerligt skapa och distribuera AZURE Resource Manager-mallprojekt (ARM-mall).

Azure DevOps tillhandahåller utvecklingstjänster till supportteam som låter dessa planera arbete, samarbeta med kodutveckling, samt skapa och distribuera program. Utvecklare kan arbeta i molnet med hjälp av Azure DevOps Services. Azure DevOps innehåller en integrerad uppsättning funktioner som du kan komma åt via webbläsaren eller IDE-klienten. Azure Pipelines är en av dessa funktioner. Azure Pipelines är en fullständigt aktuell tjänst för kontinuerlig integrering (CI) och kontinuerlig leverans (CD). Den fungerar med din önskade Git-provider och kan distribueras till de flesta större molntjänster. Sedan kan du automatisera bygget, testningen och distributionen av din kod till Microsoft Azure, Google Cloud Platform eller Amazon Web Services.

Kommentar

Välj ett projektnamn. När du går igenom självstudien ersätter du någon av ARMPipelineProj med projektnamnet. Det här projektnamnet används för att generera resursnamn. En av resurserna är ett lagringskonto. Lagringskontonamn måste innehålla mellan 3 och 24 tecken i form av siffror och gemener. Namnet måste vara unikt. I mallen är lagringskontonamnet projektnamnet med lagrat och projektnamnet måste vara mellan 3 och 11 tecken. Projektnamnet måste därför uppfylla kraven för lagringskontots namn och innehålla mindre än 11 tecken.

Den här självstudien omfattar följande uppgifter:

  • Förbereda en GitHub-lagringsplats
  • Skapa ett Azure DevOps-projekt
  • Skapa en Azure-pipeline
  • Verifiera pipelinedistributionen
  • Uppdatera mallen och distribuera om
  • Rensa resurser

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

För att slutföra den här artikeln behöver du:

Förbereda en GitHub-lagringsplats

GitHub används för att lagra projektets källkod, inklusive Resource Manager-mallar. Andra lagringsplatser som stöds finns i lagringsplatser som stöds av Azure DevOps.

Skapa en GitHub-lagringsplats

Om du inte har något GitHub-konto kan du läsa Krav.

  1. Logga in på GitHub.

  2. Välj din kontobild i det övre högra hörnet och välj sedan Dina lagringsplatser.

    Screenshot of creating a GitHub repository for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Välj Ny, en grön knapp.

  4. I Namnet på lagringsplatsen anger du ett lagringsplatsnamn. Till exempel ARMPipeline-repo. Kom ihåg att ersätta någon av ARMPipeline med projektnamnet. Du kan välja antingen Offentlig eller privat för att gå igenom den här självstudien. Välj sedan Skapa lagringsplats.

  5. Skriv ned URL:en. Lagringsplatsens URL är följande format – https://github.com/[YourAccountName]/[YourRepositoryName].

Den här lagringsplatsen kallas för en fjärrlagringsplats. Var och en av utvecklarna av samma projekt kan klona sin egen lokala lagringsplats och sammanfoga ändringarna till fjärrlagringsplatsen.

Klona fjärrlagringsplatsen

  1. Öppna Git Shell eller Git Bash. Se Förutsättningar.

  2. Kontrollera att din aktuella mapp är GitHub.

  3. Kör följande kommando:

    git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName]
    cd [YourGitHubRepositoryName]
    mkdir create_web_app
    cd create_web_app
    pwd
    

    Ersätt [YourAccountName] med ditt GitHub-kontonamn och ersätt [YourGitHubRepositoryName] med lagringsplatsens namn som du skapade i föregående procedur.

Mappen create_web_app är mappen där mallen lagras. Kommandot pwd visar mappsökvägen. Sökvägen är den plats där du sparar mallen i följande procedur.

Ladda ned en snabbstartsmall

I stället för att skapa mallarna kan du ladda ned mallarna och spara dem i mappen create_web_app .

Både mappnamnet och filnamnen används som de är i pipelinen. Om du ändrar dessa namn måste du uppdatera namnen som används i pipelinen.

Skicka mallen till fjärrlagringsplatsen

Azuredeploy.json har lagts till på den lokala lagringsplatsen. Sedan laddar du upp mallen till fjärrlagringsplatsen.

  1. Öppna Git Shell eller Git Bash om det inte är öppet.

  2. Ändra katalogen till mappen create_web_app i den lokala lagringsplatsen.

  3. Kontrollera att filen azuredeploy.json finns i mappen.

  4. Kör följande kommando:

    git add .
    git commit -m "Add web app templates."
    git push origin main
    

    Du kanske får en varning om LF. Du kan ignorera varningen. main är huvudgrenen. Du skapar vanligtvis en gren för varje uppdatering. För att förenkla självstudien använder du huvudgrenen direkt.

  5. Bläddra till din GitHub-lagringsplats från en webbläsare. URL:en är https://github.com/[YourAccountName]/[YourGitHubRepository]. Du ska se mappen create_web_app och de två filerna i mappen.

  6. Välj azuredeploy.json för att öppna mallen.

  7. Välj knappen Rå. URL:en börjar med https://raw.githubusercontent.com.

  8. Skapa en kopia av URL:en. Du måste ange det här värdet när du konfigurerar pipelinen senare i självstudien.

Hittills har du skapat en GitHub-lagringsplats och laddat upp mallarna till lagringsplatsen.

Skapa ett DevOps-projekt

En DevOps-organisation behövs innan du kan gå vidare till nästa procedur. Om du inte har någon läser du Krav.

  1. Logga in på Azure DevOps.

  2. Välj en DevOps-organisation till vänster och välj sedan Nytt projekt. Om du inte har några projekt öppnas sidan Skapa projekt automatiskt.

  3. Ange följande värden:

    Screenshot of creating an Azure DevOps project for Azure Resource Manager Azure DevOps Azure Pipelines.

    • Projektnamn: Ange ett projektnamn. Du kan använda projektnamnet som du valde i början av självstudien.
    • Synlighet: Välj Privat.

    Använd standardvärdet för de andra egenskaperna.

  4. Välj Skapa.

Skapa en tjänstanslutning som används för att distribuera projekt till Azure.

  1. Välj Projektinställningar längst ned på den vänstra menyn.

  2. Välj Tjänstanslutningar under Pipelines.

  3. Välj Skapa tjänstanslutning, välj Azure Resource Manager och välj sedan Nästa.

  4. Välj Tjänstens huvudnamn (automatiskt) och välj sedan Nästa.

  5. Ange följande värden:

    • Omfångsnivå: välj Prenumeration.
    • Prenumeration: Välj din prenumeration.
    • Resursgrupp: Lämna den tom.
    • Anslut ionsnamn: ange ett anslutningsnamn. Till exempel ARMPipeline-conn. Skriv ned det här namnet. Du behöver namnet när du skapar din pipeline.
    • Bevilja åtkomstbehörighet till alla pipelines. (valt)
  6. Välj Spara.

Skapa en pipeline

Hittills har du slutfört följande uppgifter. Om du hoppar över föregående avsnitt eftersom du är bekant med GitHub och DevOps måste du slutföra uppgifterna innan du fortsätter.

  • Skapa en GitHub-lagringsplats och spara mallarna i mappen create_web_app på lagringsplatsen.
  • Skapa ett DevOps-projekt och skapa en Azure Resource Manager-tjänstanslutning.

Så här skapar du en pipeline med ett steg för att distribuera en mall:

  1. Välj Pipelines på den vänstra menyn.

  2. Välj Skapa pipeline.

  3. Välj GitHub på fliken Connect (Anslut). Om du tillfrågas anger du dina GitHub-autentiseringsuppgifter och följer sedan anvisningarna. Om du ser följande skärm väljer du Välj Endast lagringsplatser och kontrollerar att lagringsplatsen finns i listan innan du väljer Godkänn och installera.

    Screenshot of selecting repositories for Azure Resource Manager Azure DevOps Azure Pipelines.

  4. Välj din lagringsplats på fliken Välj . Standardnamnet är [YourAccountName]/[YourGitHubRepositoryName].

  5. På fliken Konfigurera väljer du Startpipeline. Den visar pipelinefilen azure-pipelines.yml med två skriptsteg.

  6. Ta bort de två skriptstegen från .yml-filen .

  7. Flytta markören till raden efter steg:.

  8. Välj Visa assistent till höger på skärmen för att öppna fönstret Uppgifter .

  9. Välj DISTRIBUTION av ARM-mall.

  10. Ange följande värden:

    • deploymentScope: Välj Resursgrupp. Mer information om omfången finns i Distributionsomfång.
    • Azure Resource Manager-anslutning: Välj det tjänstanslutningsnamn som du skapade tidigare.
    • Prenumeration: Ange målprenumerations-ID.
    • Åtgärd: Välj åtgärden Skapa eller uppdatera resursgrupp utför två åtgärder – 1. skapa en resursgrupp om ett nytt resursgruppsnamn anges. 2. distribuera den angivna mallen.
    • Resursgrupp: Ange ett nytt resursgruppsnamn. Till exempel ARMPipeline-rg.
    • Plats: Välj en plats för resursgruppen, till exempel USA, centrala.
    • Mallplats: Välj URL för filen, vilket innebär att uppgiften söker efter mallfilen med hjälp av URL:en. Eftersom relativePath används i huvudmallen och relativePath endast stöds för URI-baserade distributioner måste du använda URL:en här.
    • Malllänk: Ange den URL som du fick i slutet av avsnittet Förbered en GitHub-lagringsplats . Det börjar med https://raw.githubusercontent.com.
    • Länk till mallparametrar: Lämna det här fältet tomt. Du anger parametervärdena i parametrarna åsidosätt mall.
    • Åsidosätt mallparametrar: Ange -projectName [EnterAProjectName].
    • Distributionsläge: Välj Inkrementell.
    • Distributionsnamn: Ange DeployPipelineTemplate. Välj Avancerat innan du kan se distributionsnamnet.

    Screenshot of the ARM template deployment page with required values entered for Azure DevOps Azure Pipelines.

  11. Markera Lägga till.

    Mer information om uppgiften finns i Distributionsaktivitet för Azure-resursgrupp och Distributionsuppgift för Azure Resource Manager-mallar

    .yml-filen ska likna följande:

    Screenshot of the Review page with the new pipeline titled Review your pipeline YAML for Azure DevOps Azure Pipelines.

  12. Välj Spara och kör.

  13. I fönstret Spara och kör väljer du Spara och kör igen. En kopia av YAML-filen sparas i den anslutna lagringsplatsen. Du kan se YAML-filen genom att bläddra till lagringsplatsen.

  14. Kontrollera att pipelinen har körts.

    Screenshot of Azure Resource Manager Azure DevOps Azure Pipelines YAML file.

Verifiera distributionen

  1. Logga in på Azure-portalen.
  2. Öppna resursgruppen. Namnet är det du angav i YAML-pipelinefilen. Du kommer att se ett lagringskonto som skapats. Lagringskontonamnet börjar med arkivet.
  3. Välj namnet på lagringskontot för att öppna det.
  4. Välj Egenskaper. Observera att Replikeringen är lokalt redundant lagring (LRS).

Uppdatera och distribuera om

När du uppdaterar mallen och push-överför ändringarna till fjärrlagringsplatsen uppdaterar pipelinen automatiskt resurserna, lagringskontot i det här fallet.

  1. Öppna linkedStorageAccount.json från din lokala lagringsplats i Visual Studio Code eller någon textredigerare.

  2. Uppdatera defaultValue för storageAccountType till Standard_GRS. Se följande skärmbild:

    Screenshot of updating the YAML file for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Spara ändringarna.

  4. Skicka ändringarna till fjärrlagringsplatsen genom att köra följande kommandon från Git Bash/Shell.

    git pull origin main
    git add .
    git commit -m "Update the storage account type."
    git push origin main
    

    Det första kommandot (pull) synkroniserar den lokala lagringsplatsen med fjärrlagringsplatsen. YAML-pipelinefilen lades bara till på fjärrlagringsplatsen. pull När kommandot körs laddas en kopia av YAML-filen ned till den lokala grenen.

    Det fjärde kommandot (push) laddar upp den ändrade filen linkedStorageAccount.json till fjärrlagringsplatsen. När huvudgrenen för fjärrlagringsplatsen har uppdaterats utlöses pipelinen igen.

Om du vill verifiera ändringarna kan du kontrollera lagringskontots replikeringsegenskap. Se Verifiera distributionen.

Rensa resurser

När Azure-resurserna inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen.

  1. Från Azure-portalen väljer du Resursgrupp från den vänstra menyn.
  2. Ange resursgruppens namn i fältet Filtrera efter namn.
  3. Välj resursgruppens namn.
  4. Välj Ta bort resursgrupp från menyn längst upp.

Du kanske också vill ta bort GitHub-lagringsplatsen och Azure DevOps-projektet.

Nästa steg

Grattis, du har slutfört den här distributionsguiden för Resource Manager-mallen. Meddela oss om du har några kommentarer och förslag i feedbackavsnittet. Tack! Du är redo att gå in på mer avancerade begrepp om mallar. I nästa självstudie går vi in mer detaljerat på hur du använder mallreferensdokumentationen för att definiera resurser som ska distribueras.