Dela via


Distribuera webbappar till virtuella Azure-datorer med distributionsgrupper

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

I tidigare versioner av Azure Pipelines krävde distribution av program till flera servrar betydande planering och underhåll. Windows PowerShell-fjärrkommunikation måste aktiveras manuellt, specifika portar behövde öppnas och distributionsagenter måste installeras på varje server. Det krävs även manuella åtgärder för att hantera distributionsdistributioner. Dessa utmaningar förenklas med introduktionen av distributionsgrupper.

En distributionsgrupp installerar en distributionsagent på varje målserver i gruppen och gör det möjligt för versionspipelinen att gradvis distribuera programmet mellan dessa servrar. Du kan skapa flera pipelines för distributionsdistributioner, vilket möjliggör stegvis leverans av programuppdateringar till olika användargrupper.

Anmärkning

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

Förutsättningar

Produkt Requirements
Azure DevOps – En organisation i Azure DevOps .
– Ett Azure DevOps-projekt.
Azure – En Azure-prenumeration.

Konfigurera resurser i Azure

Det här avsnittet vägleder dig genom att konfigurera dina Azure-resurser med hjälp av en ARM-mall. Det etablerar sex virtuella datorwebbservrar (VM) med IIS konfigurerat, en SQL Server VM (DB-server), en Azure Load Balancer och alla nödvändiga nätverksanslutningar.

  1. Välj knappen Distribuera till Azure för att initiera distributionen av dina resurser i Azure.

  2. Fyll i nödvändig information och välj sedan Granska + skapa. Du kan använda valfri tillåten kombination av användarnamn och lösenord eftersom de inte används igen i den här självstudien. Env-prefixnamnet läggs till i alla resursnamn för att säkerställa global unikhet. Använd något personligt eller slumpmässigt. Om du stöter på en namnkonflikt under valideringen eller skapandet kan du prova att ändra det här värdet och distribuera om. Etableringen tar vanligtvis 10–15 minuter.

    En skärmbild som visar hur du konfigurerar dina Azure-resurser i Azure.

  3. När verifieringen är klar väljer du Skapa för att distribuera dina resurser.

  4. När distributionen är klar går du till resursgruppen i Azure-portalen för att granska de genererade resurserna. Välj den virtuella db-serverdatorn med sqlSrv i namnet för att visa dess information.

    En skärmbild som visar de nyligen skapade resurserna i Azure.

  5. Kopiera DNS-namnet efter behov i ett senare steg.

    En skärmbild som visar den virtuella databasserverdatorn i Azure.

Skapa en distributionsgrupp

En distributionsgrupp är en samling datorer, var och en med en distributionsagent installerad. Dessa datorer kommunicerar med Azure Pipelines för att samordna programdistributioner.

  1. Gå till ditt Azure DevOps-projekt.

  2. Välj Pipelines>Distributionsgrupper.

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

  4. Ange Släpp som namn på distributionsgrupp och välj sedan Skapa. Ett registreringsskript genereras. Du kan använda det här skriptet för att registrera målservrar och installera distributionsagenten manuellt. I den här självstudien registreras dock målservrarna automatiskt som en del av versionspipelinen.

Skapa en personlig åtkomsttoken

  1. I ditt Azure DevOps-projekt väljer du ikonen Användarinställningar och väljer sedan Personliga åtkomsttoken.

  2. Välj Ny token, ange ett namn för din PAT och välj sedan ett förfallodatum.

  3. Välj Anpassad definierad för Omfång, välj Visa alla omfång och kontrollera sedan följande omfång:

    1. Projekt och team ->Läs och skriv.
    2. Agentpooler –>Läs och hantera
    3. Distributionsgrupper –>Läs och hantera.
  4. Välj Skapa när du är klar och kopiera din PAT efter behov i följande avsnitt.

Konfigurera versionspipelinen

Den klassiska versionspipelinemallen innehåller ett agentjobb, agentfasen, som kör uppgifter på en agent i en agentpool. Den innehåller även två distributionsgruppsjobb: distributionsgruppsfasen och IIS-distributionsfasen. Distributionsgruppsjobb kör uppgifter på datorer som definierats i en distributionsgrupp. Följ stegen nedan för att konfigurera varje jobb.

Konfigurera agentjobbet

  1. Gå till ditt Azure DevOps-projekt och välj Pipelines-versioner>.

  2. Välj versionsdefinitionen Distributionsgrupper och välj sedan Redigera.

  3. Välj fliken Uppgifter för att visa distributionsuppgifterna i pipelinen.

  4. Välj fassteget Agent och välj sedan Azure Pipelines-poolen och den senaste specifikationen för Windows .

    En skärmbild som visar agentfasen i den klassiska versionspipelinen.

  5. Välj Azure-resursgruppsdistribution-uppgiften. Välj den Azure-prenumeration som du använde tidigare för att skapa dina resurser och välj sedan Auktorisera för att auktorisera anslutningen. När du har godkänt väljer du den resursgrupp som du skapade för den här självstudien.

    En skärmbild som visar hur du konfigurerar resursgruppen i distributionsaktiviteten.

  6. Den här uppgiften körs på virtuella datorer i Azure och måste kunna ansluta tillbaka till pipelinen för att slutföra kraven för distributionsgruppen. För att skydda anslutningen måste en tjänstanslutning konfigureras med hjälp av den personliga åtkomsttoken (PAT) som du skapade tidigare. Rulla nedåt inom samma uppgift och välj Nytt under Azure Pipelines-tjänstanslutning.

  7. I panelen Ny tjänstanslutning anger du anslutnings-URL:en för din Azure DevOps-organisation https://dev.azure.com/organizationName. Klistra in den personliga åtkomsttoken som du skapade tidigare, ange ett tjänstanslutningsnamn och markera kryssrutan Bevilja åtkomstbehörighet till alla pipelines . Välj Verifiera och spara när du är klar.

    En skärmbild som visar hur du konfigurerar en ny tjänstanslutning för distributionsaktiviteten.

  8. Rulla nedåt i den här azure-resursgruppsdistributionsuppgiften och välj sedan från de nedrullningsbara menyerna för ditt teamprojekt och den distributionsgrupp som du skapade tidigare.

    En skärmbild som visar hur du konfigurerar gruppprojektet och distributionsgruppen för distributionsuppgiften.

Konfigurera distributionsgruppjobben

  1. I versionsdefinitionen Distributionsgrupper väljer du fasjobbet Distributionsgrupp . Det här jobbet kör uppgifter på de datorer som definierats i distributionsgruppen. Det här jobbet använder SQL-Svr-DB-taggen för att distribuera till en delmängd mål i distributionsgruppen. Under listrutan Distributionsgrupp väljer du distributionsgruppen Release som du skapade tidigare.

    En skärmbild som visar hur du konfigurerar distributionsgruppens fasjobb.

  2. Välj IIS-distributionsfasens jobb. Det här jobbet använder WebSrv-taggen för att distribuera webbprogrammet till en delmängd av webbservrarna. Välj den distributionsgrupp som du skapade tidigare i listrutan.

  3. Uppgifterna Disconnect Azure Network Load Balancer och Connect Azure Network Load Balancer är inaktuella. du kan inaktivera dem för tillfället genom att högerklicka på uppgiften och välja Inaktivera välj aktiviteter.

  4. IIS Web App Manage- och IIS Web App Deploy-uppgifterna är förfyllda och kräver inga ändringar.

  5. Välj fliken Variabler i det övre vänstra hörnet, välj Pipelinevariabler och ange följande värden. Ersätt platshållaren i variabeln DefaultConnectionString med SQL-serverns DNS-namn som du kopierade tidigare:

    Variabelnamn Variabelvärde
    Databasnamn PartsUnlimited-Dev
    DBPassword xxxxxxxx
    DBUserName xxxxxxxx
    DefaultConnectionString Datakälla=[YOUR_DNS_NAME]; Initial Catalog=PartsUnlimited-Dev; Användar-ID=xxxxxxxx;Password=xxxxxxxx;MultipleActiveResultSets=False; Tidsgräns för anslutning =30;
    Servernamn localhost
  6. Välj Spara, lägg till en kommentar om du vill och välj sedan Ok.

Tips/Råd

Om du får ett felmeddelande om att variabeln DefaultConnectionString måste sparas som en hemlighet väljer du hänglåsikonen bredvid dess värde för att skydda den.

Skapa en version och distribuera ett program

Nu när versionsdefinitionen har konfigurerats och sparats kan du fortsätta att skapa en version för att distribuera webbappen till Azure. Innan du startar släppet, se till att byggkedjan körs minst en gång. Detta genererar pipelineartefakten som krävs för distributionen. Om du försöker köra utgivningspipelinen före byggpipelinen är avsnittet Artefakter i utgivningspanelen tomt. Följ dessa steg för att köra pipelinen, generera en pipelineartefakt och skapa en ny version:

  1. I ditt Azure DevOps-projekt väljer du Pipeline och sedan pipelinen Distributionsgrupper .

  2. Välj Kör pipeline. I pipelinekörningspanelen väljer du din agentspecifikation och väljer sedan Kör.

    En skärmbild som visar hur du konfigurerar pipelinekörningen.

  3. När pipelinen har slutförts genereras en pipelineartefakt. Du kan visa den från pipelinesammanfattningsfönstret:

    En skärmbild som visar den genererade pipelineartefakten.

  4. Gå nu till Pipelines-versionen>, välj versionsdefinitionen och välj sedan Skapa version för att starta distributionspipelinen.

    En skärmbild som visar hur du skapar en ny version.

  5. Välj Skapa när du är klar och välj sedan pipelinekörningen för att öppna översikten. Du bör se pipelinen Pågår. Välj på stadiet för att visa de detaljerade distributionsloggarna.

    En skärmbild som visar översikten över versionspipelinen.

  6. I sammanfattningsfönstret kan du se status för varje fas i distributionen:

    En skärmbild som visar versionssammanfattningen.

Felsökning

  • Det gick inte att ansluta till huvud- eller målservern eller en anslutning upprättades med servern, men sedan uppstod ett fel under inloggningsprocessen.

Om du stöter på något av dessa fel när du kör uppgiften Sql Dacpac Deployment On Machine Group följer du dessa steg:

  1. Verifiera databasen:

Kontrollera att databasen har skapats under resursdistributionen. Du kan bekräfta detta med hjälp av Azure CLI eller sqlcmd:

sqlcmd -S <server-name> -U <username> -P <password> -Q "SELECT name FROM sys.databases"

Om databasen inte finns i listan kan du skapa en ny med hjälp av följande kommando:

sqlcmd -S <server-name> -U <username> -P <password> -Q "CREATE DATABASE [YourDatabaseName]"
  1. Verifiera din SQL Server-autentisering:

Kontrollera att SQL Server-autentiseringen är aktiverad. SQL Server måste konfigureras för att tillåta både SQL- och Windows-autentisering (blandat läge). Så här aktiverar du detta:

a. Ansluta med SSMS eller sqlcmd

b) Kör följande fråga:

EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE',
    N'Software\\Microsoft\\MSSQLServer\\MSSQLServer',
    N'LoginMode',
    REG_DWORD,
    2;

Punkt c Starta om SQL Server-tjänsten för att ändringen ska börja gälla:

net stop MSSQLSERVER
net start MSSQLSERVER
  • Vissa av mina agenter är offline trots att agenten körs på min virtuella dator

Om en eller flera av dina agenter visas som offline kan du prova några saker. Logga först in på den virtuella datorn där agenten körs och kör följande kommando för att kontrollera om den virtuella datorn matchar samma uppsättning IP-adresser.

nslookup dev.azure.com

Om alla virtuella datorer matchar samma uppsättning IP-adresser kontrollerar du att lastbalanseraren har konfigurerats med rätt utgående regel. Du kan lägga till en serverdelspool i lastbalanseraren i Azure, lägga till nätverkskorten för dina virtuella datorer i serverdelspoolen och sedan associera den med lastbalanserarens regel för utgående trafik. Så här gör du:

  1. Gå till Azure och leta reda på lastbalanseraren.

  2. Välj Serverdelspooler, välj din befintliga pool eller skapa en ny och lägg till dina webbservrar under IP-konfigurationer.

  3. Gå till Belastningsutjämningsregler, välj din belastningsutjämningsregel och välj din serverdelspool i listrutan Serverdelspool .

Rensa resurser

Den här självstudien skapade ett Azure DevOps-projekt och distribuerade resurser i Azure. Om du inte längre behöver dem följer du dessa steg för att rensa:

  1. Ta bort Azure DevOps-projektet: Gå till dina projektinställningar>Översikt>Ta bort.

  2. Ta bort Azure-resursgruppen Alla Azure-resurser som skapades under den här självstudien placerades i samma resursgrupp. Om du tar bort resursgruppen tas alla associerade resurser bort. Du kan göra detta via Azure-portalen eller CLI:

  • Azure CLI

    az group delete --name <RESOURCE_GROUP_NAME> --yes --no-wait
    
  • Azure Portal

  1. Gå till > i Azure-portalen.

  2. Välj den resursgrupp som du använde i självstudien.

  3. Välj Ta bort resursgrupp, bekräfta namnet och välj sedan Ta bort.