Distribuera till virtuella Azure-datorer med distributionsgrupper i Azure-pipelines

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

I tidigare versioner av Azure Pipelines krävde program som behövde distribueras till flera servrar en betydande mängd planering och underhåll. Windows PowerShell-fjärrkommunikation måste aktiveras manuellt, nödvändiga portar öppnades och distributionsagenter installerade på var och en av servrarna. Pipelines måste sedan hanteras manuellt om en distributionsdistribution krävdes.

Alla ovanstående utmaningar har utvecklats sömlöst med introduktionen av distributionsgrupperna.

En distributionsgrupp installerar en distributionsagent på var och en av målservrarna i den konfigurerade gruppen och instruerar versionspipelinen att gradvis distribuera programmet till dessa servrar. Flera pipelines kan skapas för distributionsdistributionerna så att den senaste versionen av ett program kan levereras stegvis till flera användargrupper för validering av nyligen introducerade funktioner.

Kommentar

Distributionsgrupper är ett begrepp som används i klassiska pipelines. Om du använder YAML-pipelines läser du Miljöer.

I den här självstudien lär du dig:

  • Etablera VM-infrastruktur till Azure med hjälp av en mall
  • Skapa en Azure Pipelines-distributionsgrupp
  • Skapa och köra en CI/CD-pipeline för att distribuera lösningen med en distributionsgrupp

Förutsättningar

  • Ett Microsoft Azure-konto.
  • En Azure DevOps-organisation.

Använd Azure DevOps Demo Generator för att etablera självstudieprojektet i din Azure DevOps-organisation.

Konfigurera Azure-distributionsmiljön

Följande resurser etableras på Azure med hjälp av en ARM-mall:

  • Sex vm-webbservrar (Virtual Machines) med IIS konfigurerat
  • VIRTUELL SQL Server-dator (DB-server)
  • Azure Network Load Balancer
  1. Klicka på länken Distribuera till Azure nedan för att initiera resursetablering. Ange all nödvändig information och välj Köp. Du kan använda valfri kombination av tillåtna administrativa användarnamn och lösenord eftersom de inte används igen i den här självstudien. Prefixnamnet Env är prefixet för alla resursnamn för att säkerställa att dessa resurser genereras med globalt unika namn. Försök att använda något personligt eller slumpmässigt, men om du ser ett namnkonfliktsfel under verifieringen eller skapandet kan du försöka ändra den här parametern och köra igen.

    Distribuera till Azure

    Skärmbild som visar hur du konfigurerar din Azure-distributionsmiljö.

    Kommentar

    Det tar ungefär 10–15 minuter att slutföra distributionen. Om du får problem med namngivningskonflikter kan du prova att ändra parametern som du anger för Ettv-prefixnamn.

  2. När distributionen är klar kan du granska alla resurser som genereras i den angivna resursgruppen med hjälp av Azure-portalen. Välj den virtuella db-serverdatorn med sqlSrv i namnet för att visa dess information.

    Resursgruppsdistribution till Azure.

  3. Anteckna DNS-namnet. Det här värdet krävs i ett senare steg. Du kan använda kopieringsknappen för att kopiera den till Urklipp.

    SQL DNS-distribution till Azure.

Skapa och konfigurera en distributionsgrupp

Med Azure Pipelines blir det enklare att organisera servrar som krävs för att distribuera program. En distributionsgrupp är en samling datorer med distributionsagenter. Var och en av datorerna interagerar med Azure Pipelines för att samordna distributionen av appen.

Eftersom det inte krävs någon konfigurationsändring för bygg-pipelinen utlöses bygget automatiskt när projektet har etablerats. När du köar en version senare används den här versionen.

  1. Gå till Azure DevOps-projektet som skapats av demogeneratorn.

  2. Från under Pipelines navigerar du till Distributionsgrupper.

    Navigera till distributionsgrupper under Pipelines

  3. Välj Lägg till en distributionsgrupp.

  4. Ange distributionsgruppens namnRelease och välj Skapa. Ett registreringsskript genereras. Du kan registrera målservrarna med hjälp av skriptet som tillhandahålls om du arbetar på egen hand. I den här självstudien registreras dock målservrarna automatiskt som en del av versionspipelinen. Versionsdefinitionen använder faser för att distribuera programmet till målservrarna. En fas är en logisk gruppering av de uppgifter som definierar körningsmålet som aktiviteterna ska köras på. Varje distributionsgruppssteg kör uppgifter på de datorer som definierats i distributionsgruppen.

  5. Gå till Versioner under Pipelines. Välj versionspipelinen med namnet Distributionsgrupper och välj Redigera.

  6. Välj fliken Uppgifter för att visa distributionsuppgifterna i pipelinen. Uppgifterna organiseras som tre steg som kallas agentfas, distributionsgruppsfas och IIS-distributionsfas.

  7. Välj fasen Agent. I det här skedet är målservrarna associerade med distributionsgruppen med hjälp av azure-resursgruppsdistributionsaktiviteten. För att kunna köras måste en agentpool och specifikation definieras. Välj Azure Pipelines-poolen och den senaste Windows-specifikationen.

    Konfigurera agentfasen

  8. Välj azure-resursgruppsdistributionsaktiviteten. Konfigurera en tjänstanslutning till den Azure-prenumeration som användes tidigare för att skapa infrastruktur. När du har auktoriserat anslutningen väljer du den resursgrupp som skapades för den här självstudien.

    Skapa en Azure-tjänstanslutning

  9. Den här uppgiften körs på de virtuella datorer som finns i Azure och måste kunna ansluta tillbaka till den här pipelinen för att slutföra kraven för distributionsgruppen. För att skydda anslutningen behöver de en personlig åtkomsttoken (PAT). Öppna Personliga åtkomsttoken i listrutan Användarinställningar på en ny flik. De flesta webbläsare har stöd för att öppna en länk på en ny flik via snabbmenyn högerklicka eller Ctrl+Klicka.

    Navigera till personliga åtkomsttoken

  10. På den nya fliken väljer du Ny token.

  11. Ange ett namn och välj det fullständiga åtkomstomfånget . Välj Skapa för att skapa token. När du har skapat den kopierar du token och stänger webbläsarfliken. Du återgår till Azure Pipeline-redigeraren.

    Skapa en personlig åtkomsttoken

  12. Under Azure Pipelines-tjänstanslutning väljer du Ny.

    Lägga till en Azure Pipelines-tjänstanslutning

  13. Ange Anslut ions-URL:en till den aktuella instansen av Azure DevOps. Den här URL:en https://dev.azure.com/[Your account]liknar . Klistra in den personliga åtkomsttoken som skapades tidigare och ange ett namn på tjänstanslutningen. Välj Verifiera och spara.

    Skapa en Azure Pipelines-tjänstanslutning

    Kommentar

    Om du vill registrera en agent måste du vara medlem i rollen Administratör i agentpoolen. Agentpooladministratörens identitet behövs endast vid tidpunkten för registreringen. Administratörsidentiteten sparas inte på agenten och används inte i någon efterföljande kommunikation mellan agenten och Azure Pipelines. När agenten har registrerats behöver du inte förnya den personliga åtkomsttoken eftersom den endast krävs vid tidpunkten för registreringen.

  14. Välj det aktuella teamprojektet och den distributionsgrupp som skapades tidigare.

    Konfigurera distributionsgruppen för Azure Pipelines

  15. Välj fassteget Distributionsgrupp. I det här steget körs uppgifter på de datorer som definierats i distributionsgruppen. Den här fasen är länkad till SQL-Svr-DB-taggen . Välj distributionsgruppen i listrutan.

    Konfigurera distributionsgruppsfasen

  16. Välj fasfasen för IIS-distribution. Det här steget distribuerar programmet till webbservrarna med hjälp av de angivna uppgifterna. Den här fasen är länkad till WebSrv-taggen . Välj distributionsgruppen i listrutan.

  17. Välj aktiviteten Koppla från Azure Network Load Balancer . Eftersom måldatorerna är anslutna till NLB kopplar den här uppgiften från datorerna från NLB före distributionen och återansluter dem till NLB efter distributionen. Konfigurera uppgiften så att den använder Azure-anslutningen, resursgruppen och lastbalanseraren (det ska bara finnas en).

  18. Välj IIS Web App Manage-uppgiften . Den här uppgiften körs på de distributionsmåldatorer som registrerats med distributionsgruppen som konfigurerats för uppgiften/fasen. Den skapar en webbapp och en programpool lokalt med namnet PartsUnlimited som körs under port 80

  19. Välj IIS Web App Deploy-uppgiften . Den här uppgiften körs på de distributionsmåldatorer som registrerats med distributionsgruppen som konfigurerats för uppgiften/fasen. Programmet distribueras till IIS-servern med hjälp av Webbdistribution.

  20. Välj uppgiften Anslut Azure Network Load Balancer. Konfigurera uppgiften så att den använder Azure-anslutningen, resursgruppen och lastbalanseraren (det ska bara finnas en).

  21. Välj fliken Variabler och ange variabelvärdena enligt nedan.

    Variabelnamn Variabelvärde
    DatabaseName PartsUnlimited-Dev
    DBPassword P2ssw0rd@123
    DBUserName sqladmin
    Standard Anslut ionString Datakälla=[YOUR_DNS_NAME]; Initial Catalog=PartsUnlimited-Dev; Användar-ID=sqladmin; Password=P2ssw0rd@123; MultipleActiveResultSets=False; Anslut ion Timeout=30;
    ServerName localhost

    Viktigt!

    Ersätt ditt SQL Server DNS-namn (som du noterade från Azure-portalen tidigare) i variabeln Default Anslut ionString.

    Standard Anslut ionString bör likna den här strängen när du har ersatt SQL DNS:

    Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=sqladmin;Password=P2ssw0rd@123;MultipleActiveResultSets=False;Connection Timeout=30;

    Den slutliga variabellistan bör se ut ungefär så här:

    Konfigurera pipelinevariabler

    Kommentar

    Du kan få ett felmeddelande om att variabeln DefaultConnectionString måste sparas som en hemlighet. Om det händer väljer du variabeln och klickar på hänglåsikonen som visas bredvid dess värde för att skydda den.

Köa en version och granska distributionen

  1. Välj Spara och bekräfta.

  2. Välj Skapa version och bekräfta. Följ versionen för att slutföra den. Distributionen är sedan redo för granskning.

  3. Öppna en av de virtuella webbdatorerna i resursgruppen i Azure-portalen. Du kan välja alla som har websrv i namnet.

    Hitta en virtuell webbdator

  4. Kopiera DEN virtuella datorns DNS . Azure Load Balancer distribuerar inkommande trafik mellan felfria instanser av servrar som definierats i en belastningsutjämningsuppsättning. Därför är DNS för alla webbserverinstanser densamma.

    Hitta webbappdomänen

  5. Öppna en ny webbläsarflik till den virtuella datorns DNS. Bekräfta att den distribuerade appen körs.

    Granska appen

Sammanfattning

I den här självstudien distribuerade du ett webbprogram till en uppsättning virtuella Azure-datorer med hjälp av Azure Pipelines och distributionsgrupper. Även om det här scenariot täckte en handfull datorer kan du enkelt skala upp processen för att stödja hundratals, eller till och med tusentals, datorer med praktiskt taget vilken konfiguration som helst.

Rensa resurser

I den här självstudien skapades ett Azure DevOps-projekt och några resurser i Azure. Om du inte kommer att fortsätta att använda dessa resurser tar du bort dem med följande steg:

  1. Ta bort Azure DevOps-projektet som skapats av Azure DevOps Demo Generator.

  2. Alla Azure-resurser som skapades under den här självstudien tilldelades den resursgrupp som angavs när de skapades. Om du tar bort den gruppen tas de resurser som de innehåller bort. Den här borttagningen kan göras via CLI eller portalen.

Nästa steg