Etablera agenter för distributionsgrupper
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
En distributionsgrupp är en logisk grupp med distributionsmåldatorer för klassiska versionspipelines i Azure Pipelines. Varje målserver i en distributionsgrupp kräver att en distributionsagent är installerad. Den här artikeln beskriver hur du installerar och etablerar distributionsagenten på varje fysisk eller virtuell dator (VM) i en distributionsgrupp.
Du kan installera agenten på en måldator på något av följande sätt:
- Kör skriptet som genererar när du skapar distributionsgruppen.
- Installera Azure Pipelines Agent Azure VM-tillägget på den virtuella datorn.
- Använd uppgiften AzureResourceGroupDeploymentV2 i versionspipelinen för att skapa en distributionsgrupp och etablera agenter dynamiskt.
Följande avsnitt innehåller steg för att implementera varje metod.
Förutsättningar
- En Azure DevOps-organisation och ett projekt. Information om hur du skapar en organisation eller ett projekt finns i Skapa en ny organisation eller Skapa ett projekt i Azure DevOps.
- Åtkomst till minst en Windows- eller Linux-distributionsmåldator med lämpliga behörigheter.
- För installationsmetoderna för Azure Pipelines Agent, ett Azure-konto och en prenumeration med behörighet att skapa och hantera virtuella Azure-datorer. Om du inte har ett Azure-konto registrerar du dig för ett kostnadsfritt konto.
Kör installationsskriptet på målservrarna
När du skapar en distributionsgrupp genereras ett skript som du kan köra på varje måldator för att registrera servern och installera agenten. Så här installerar du agenten med hjälp av det genererade registreringsskriptet:
I ditt Azure DevOps-projekt väljer du Distributionsgrupper för pipelines>.
På skärmen Distributionsgrupper väljer du Nytt eller väljer Lägg till en distributionsgrupp om den här distributionsgruppen är den första i projektet.
Ange ett Namn på distributionsgrupp och valfri Beskrivning och välj sedan Skapa.
På nästa skärm väljer du Windows eller Linux som måltyp att registrera. Ett registreringsskript genereras.
Välj Use a personal access token in the script for authentication (Använd en personlig åtkomsttoken i skriptet för autentisering). Mer information finns i Använda personliga åtkomsttoken.
Välj Kopiera skript till Urklipp.
Logga in med ett konto med administratörsbehörighet på varje måldator.
Kör det kopierade skriptet för att registrera datorn och installera agenten. För Windows-datorer använder du en upphöjd PowerShell-kommandotolk.
När skriptet körs:
Om du vill tilldela taggar som gör att du kan begränsa distributioner till vissa servrar i ett distributionsgruppjobb anger du Y när du uppmanas att ange taggar och anger sedan en tagg eller taggar för den här virtuella datorn.
Taggar är begränsade till 256 tecken vardera, är skiftlägesokänsliga och det finns ingen gräns för hur många taggar du kan använda.
När du uppmanas att ange ett användarkonto godkänner du standardinställningarna.
Kommentar
Om du får ett felmeddelande när du kör skriptet som det inte gick att skapa en säker kanal kör du följande kommando i PowerShell-kommandotolken Administratör:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
När du har konfigurerat varje målserver ska skriptet returnera meddelandet Service vstsagent.{organization-name}.{computer-name} started successfully
.
På fliken Mål på sidan Distributionsgrupper för Azure Pipelines kan du kontrollera att agenten körs. Uppdatera sidan om det behövs.
Installera Azure Pipelines Agent Azure VM-tillägget
Om du använder virtuella Azure-datorer som distributionsdatorer kan du installera Azure Pipelines Agent-tillägget på varje virtuell dator. Tillägget registrerar automatiskt agenten med den angivna distributionsgruppen i ditt Azure DevOps-projekt.
Om du vill installera agenten med hjälp av tillägget skapar du först distributionsgruppen:
- I ditt Azure DevOps-projekt väljer du Distributionsgrupper för pipelines>.
- På skärmen Distributionsgrupper väljer du Nytt eller väljer Lägg till en distributionsgrupp om den här distributionsgruppen är den första i projektet.
- Ange ett Namn på distributionsgrupp och valfri Beskrivning och välj sedan Skapa.
I Azure Portal installerar du Azure Pipelines Agent-tillägget på varje virtuell måldator:
På den virtuella datorn väljer du Inställningar>Tillägg + Program i det vänstra navigeringsfältet.
På fliken Tillägg väljer du Lägg till.
På sidan Installera ett tillägg söker du efter och väljer Azure Pipelines Agent och väljer sedan Nästa.
På skärmen Konfigurera Azure Pipelines-agenttillägg anger du följande information:
- Url för Azure DevOps-organisation: Ange URL:en för din Azure DevOps-organisation, till exempel
https://dev.azure.com/contoso
. - Teamprojekt: Ange projektnamnet, till exempel myProject.
- Distributionsgrupp: Ange namnet på den distributionsgrupp som du skapade.
- Agentnamn: Du kan också ange ett namn för agenten. Om du inte anger något får agenten namnet vm-namnet som läggs till med
-DG
. - Personlig åtkomsttoken: Ange den personliga åtkomsttoken (PAT) som ska användas för autentisering till Azure Pipelines.
- Taggar: Om du vill kan du ange en kommaavgränsad lista med taggar som ska konfigureras på agenten. Taggar är begränsade till 256 tecken vardera, är skiftlägesokänsliga och det finns ingen gräns för hur många taggar du kan använda.
- Url för Azure DevOps-organisation: Ange URL:en för din Azure DevOps-organisation, till exempel
Välj Granska + skapa och välj Skapa när valideringen godkänns.
Använda aktiviteten AzureResourceGroupDeploymentV2
Du kan använda aktiviteten AzureResourceGroupDeploymentV2 för att distribuera en ARM-mall (Azure Resource Manager). Mallen kan installera Azure Pipelines Agent-tillägget när du skapar en virtuell Azure-dator eller uppdatera resursgruppen så att tillägget tillämpas när en virtuell dator har skapats.
Du kan också använda de avancerade distributionsalternativen för AzureResourceGroupDeployment-uppgiften för att distribuera agenten.
Skapa en distributionsgrupp
Skapa först distributionsgruppen:
- I ditt Azure DevOps-projekt väljer du Distributionsgrupper för pipelines>.
- På skärmen Distributionsgrupper väljer du Nytt eller väljer Lägg till en distributionsgrupp om den här distributionsgruppen är den första i projektet.
- Ange ett Namn på distributionsgrupp och valfri Beskrivning och välj sedan Skapa.
Installera agenten med hjälp av en ARM-mall
En ARM-mall är en JSON-fil som deklarativt definierar en uppsättning Azure-resurser. Azure läser automatiskt mallen och etablerar resurserna. Du kan distribuera flera tjänster och deras beroenden i en enda mall.
Om du vill registrera och installera distributionsagenten med hjälp av en ARM-mall lägger du till ett resurselement under resursen Microsoft.Compute/virtualMachine
, enligt följande kod.
"resources": [
{
"name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/',
concat(parameters('vmNamePrefix'),copyindex()))]"
],
"properties": {
"publisher": "Microsoft.VisualStudio.Services",
"type": "TeamServicesAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"VSTSAccountName": "[parameters('VSTSAccountName')]",
"TeamProject": "[parameters('TeamProject')]",
"DeploymentGroup": "[parameters('DeploymentGroup')]",
"AgentName": "[parameters('AgentName')]",
"AgentMajorVersion": "auto|2|3",
"Tags": "[parameters('Tags')]"
},
"protectedSettings": {
"PATToken": "[parameters('PATToken')]"
}
}
}
]
Kommentar
För en virtuell Linux-dator ska parametern type
under properties
i koden vara TeamServicesAgentLinux
.
Kommentar
I Azure DevOps Server 2022.1 och senare är auto|2|3
de tillåtna värdena för AgentMajorVersion
. I Azure DevOps Server 2022.0 och tidigare är auto|N
de tillåtna värdena för AgentMajorVersion
.
"resources": [
{
"name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/',
concat(parameters('vmNamePrefix'),copyindex()))]"
],
"properties": {
"publisher": "Microsoft.VisualStudio.Services",
"type": "TeamServicesAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"VSTSAccountName": "[parameters('VSTSAccountName')]",
"TeamProject": "[parameters('TeamProject')]",
"DeploymentGroup": "[parameters('DeploymentGroup')]",
"AgentName": "[parameters('AgentName')]",
"AgentMajorVersion": "auto|N",
"Tags": "[parameters('Tags')]"
},
"protectedSettings": {
"PATToken": "[parameters('PATToken')]"
}
}
}
]
I koden ovan:
VSTSAccountName
är den azure pipelines-organisation som krävs för användning. Om din Azure DevOps-URL till exempel ärhttps://dev.azure.com/contoso
anger du baracontoso
TeamProject
är det projekt som krävs och där distributionsgruppen har definierats.DeploymentGroup
är den distributionsgrupp som krävs för att registrera agenten.AgentName
är ett valfritt agentnamn. Om det inte anges får agenten namnet på den virtuella datorn med-DG
tillagd.Tags
är en valfri kommaavgränsad lista över taggar som ska anges på agenten. Taggar är begränsade till 256 tecken vardera, är skiftlägesokänsliga och det finns ingen gräns för hur många taggar du kan använda.PATToken
är den pat som krävs för att autentisera till Azure Pipelines för att ladda ned och konfigurera agenten.
Mer information om ARM-mallar finns i Definiera resurser i Azure Resource Manager-mallar.
Använda mallen i en versionspipeline
Skapa en versionspipeline:
- Välj Pipelines-versioner> på den vänstra menyn och välj sedan Ny>ny versionspipeline.
- På fliken Versioner i Azure Pipelines skapar du en versionspipeline med en fas som innehåller distributionsaktiviteten för ARM-mallen.
- Den här mallen använder version 2 av uppgiften, så ändra aktivitetsversionen från 3.* till 2 på skärmen Inställningar för distribution av Azure-resursgrupper.
- Ange de parametrar som krävs för uppgiften, till exempel Azure-prenumerationen, resursgruppens namn, plats, mallinformation och åtgärder som ska vidtas.
- Spara versionspipelinen och skapa en version från pipelinen för att installera agenterna.
Installera agenter med hjälp av avancerade distributionsalternativ
Du kan också installera agenten med hjälp av avancerade distributionsalternativ. Följ föregående steg, men på skärmen För distributionsinställningar för Azure-resursgrupper expanderar du avsnittet Avancerade distributionsalternativ för virtuella datorer .
Under Aktivera förutsättningar väljer du Konfigurera med distributionsgruppagent.
Ange följande obligatoriska parametrar och inställningar:
Azure Pipelines-tjänstanslutning: Välj en befintlig tjänstanslutning som pekar på ditt mål.
Om du inte har någon befintlig tjänstanslutning väljer du Ny och skapar en. Mer information finns i Skapa en tjänstanslutning. Konfigurera tjänstanslutningen så att den använder en PAT med begränsat omfång till distributionsgrupp.
Teamprojekt: Välj det projekt som innehåller distributionsgruppen.
Distributionsgrupp: Välj den distributionsgrupp som agenterna ska registreras i.
Välj Kopiera Azure VM-taggar till agenter för att kopiera taggar som redan har konfigurerats på den virtuella Azure-datorn till motsvarande distributionsgruppagent.
Som standard kopieras alla Azure-taggar med formatet
Key: Value
, till exempelRole: Web
.
Spara pipelinen och skapa en version för att installera agenterna.
Felsöka tillägget
Det finns några kända problem med Azure Pipelines Agent-tillägget.
Statusfilen är för stor
Det här problemet kan inträffa på virtuella Windows-datorer. Statusfilen innehåller ett JSON-objekt som beskriver tilläggets aktuella status. Objektet är en platshållare för att lista de åtgärder som utförts hittills.
Azure läser den här statusfilen och skickar statusobjektet som svar på API-begäranden. Filen har en maximal tillåten storlek. Om storleken överskrider maxgränsen kan Azure inte läsa den helt och ger ett fel för statusen.
Även om tillägget kan installeras från början utför varje gång datorn startar om tillägget vissa åtgärder som läggs till i statusfilen. Om datorn startas om många gånger kan statusfilens storlek överskrida tröskelvärdet, vilket orsakar felet Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes
. Även om tilläggsinstallationen kan lyckas döljer det här felet det faktiska tillståndet för tillägget.
Det här problemet med omstart av datorn har åtgärdats från och med versionen 1.27.0.2
för Windows-tillägget och 1.21.0.1
för Linux-tillägget. En omstart lägger nu inte till något i statusfilen. Men om du hade det här problemet med en tidigare version av tillägget och tillägget har automatisk uppdatering till den fasta versionen kan problemet kvarstå. Nyare versioner av tillägget kan fortfarande fungera med en tidigare statusfil.
Du kan stöta på det här problemet om du använder en tidigare version av tillägget med flaggan för att inaktivera automatiska delversioner, eller om en stor statusfil har överförts från en tidigare version till en fast version. I så fall kan du lösa problemet genom att avinstallera och installera om tillägget. Om du avinstallerar tillägget rensas hela tilläggskatalogen och en ny statusfil skapas för en ny installation av den senaste versionen.
Problem med anpassade data
Python 2 är inaktuellt och Azure Pipelines Agent-tillägget fungerar med Python 3. Om du fortfarande använder os-versioner som inte har Python 3 installerat som standard ska du antingen installera Python 3 på den virtuella datorn eller växla till en os-version som har Python 3 installerat som standard. Annars kan det uppstå förvirring när det gäller den anpassade dataplatsen på den virtuella datorn när du byter os-versioner.
På virtuella Linux-datorer kopieras anpassade data till /var/lib/waagent/ovf-env.xml för tidigare agentversioner och till /var/lib/waagent/CustomData för nyare versioner. Om du bara hårdkodar en av dessa två sökvägar kan det uppstå problem när du växlar os-versioner eftersom en av sökvägarna inte finns i den nya os-versionen, även om den andra sökvägen finns. Om du vill undvika att bryta etableringen av den virtuella datorn bör du överväga att använda båda sökvägarna i mallen så att om den ena misslyckas bör den andra lyckas.
Hjälp och support
- Utforska felsökningstips.
- Få råd om Stack Overflow.
- Publicera dina frågor, sök efter svar eller föreslå en funktion i Azure DevOps Developer Community.
- Få support för Azure DevOps.