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
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.
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.
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.
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.
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.
Gå till Azure DevOps-projektet som skapats av demogeneratorn.
Från under Pipelines navigerar du till Distributionsgrupper.
Välj Lägg till en distributionsgrupp.
Ange distributionsgruppens namn på Release 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.
Gå till Versioner under Pipelines. Välj versionspipelinen med namnet Distributionsgrupper och välj Redigera.
Välj fliken Uppgifter för att visa distributionsuppgifterna i pipelinen. Uppgifterna organiseras som tre steg som kallas agentfas, distributionsgruppsfas och IIS-distributionsfas.
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.
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.
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.
På den nya fliken väljer du Ny token.
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.
Under Azure Pipelines-tjänstanslutning väljer du Ny.
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.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.
Välj det aktuella teamprojektet och den distributionsgrupp som skapades tidigare.
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.
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.
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).
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
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.
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).
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:
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
Välj Spara och bekräfta.
Välj Skapa version och bekräfta. Följ versionen för att slutföra den. Distributionen är sedan redo för granskning.
Öppna en av de virtuella webbdatorerna i resursgruppen i Azure-portalen. Du kan välja alla som har
websrv
i namnet.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.
Öppna en ny webbläsarflik till den virtuella datorns DNS. Bekräfta att den distribuerade appen körs.
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:
Ta bort Azure DevOps-projektet som skapats av Azure DevOps Demo Generator.
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.