Etablera agenter för distributionsgrupper

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

Distributionsgrupper gör det enkelt att definiera logiska grupper av måldatorer för distribution och installera den nödvändiga agenten på varje dator. Den här artikeln beskriver hur du skapar en distributionsgrupp och hur du installerar och etablerar agenten på varje virtuell eller fysisk dator i distributionsgruppen.

Du kan installera agenten på något av följande sätt:

Information om agenter och pipelines finns i:

Kör installationsskriptet på målservrarna

  1. På fliken Distributionsgrupper i Azure Pipelines väljer du +Ny för att skapa en ny grupp.

  2. Ange ett namn för gruppen och välj sedan Skapa om du vill.

  3. I avsnittet Registrera datorer med hjälp av kommandoraden på nästa sida väljer du operativsystemet för måldatorn.

  4. Välj Använd en personlig åtkomsttoken i skriptet för autentisering. Läs mer.

  5. Välj Kopiera skriptet till Urklipp.

  6. Logga in på varje måldator i tur och ordning med kontot med rätt behörigheter och:

    • Öppna en PowerShell-kommandotolk för administratör, klistra in skriptet som du kopierade och kör det sedan för att registrera datorn med den här gruppen.

    • 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 det här kommandot i PowerShell-kommandotolken För administratör:

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    • När du uppmanas att konfigurera taggar för agenten trycker du på Y och anger eventuella taggar som du ska använda för att identifiera underuppsättningar av datorerna i gruppen för partiella distributioner.

      Med taggar som du tilldelar kan du begränsa distributionen till specifika servrar när distributionsgruppen används i ett gruppjobb för Kör på dator.

    • När du uppmanas att ange användarkontot trycker du på Retur för att acceptera standardinställningarna.

    • Vänta tills skriptet har slutförts med meddelandet Service vstsagent.{organization-name}.{computer-name} started successfully.

  7. På sidan Distributionsgrupper i Azure Pipelines öppnar du fliken Datorer och kontrollerar att agenterna körs. Om taggarna som du har konfigurerat inte visas uppdaterar du sidan.

Installera Azure Pipelines Agent Azure VM-tillägget

  1. På fliken Distributionsgrupper i Azure Pipelines väljer du +Ny för att skapa en ny grupp.

  2. Ange ett namn för gruppen och välj sedan Skapa om du vill.

  3. Öppna bladet Tillägg för varje virtuell dator som ska ingå i distributionsgruppen på Azure-portalen, välj + Lägg till för att öppna listan Ny resurs och välj Azure Pipelines Agent.

    Installera Azure Pipelines Agent-tillägget

  4. På bladet Installera tillägg anger du namnet på den Azure Pipelines-prenumeration som ska användas. Om URL:en till exempel är https://dev.azure.com/contosoanger du bara contoso.

  5. Ange projektnamnet och namnet på distributionsgruppen.

  6. Du kan också ange ett namn för agenten. Om det inte anges används namnet på den virtuella datorn som läggs till med -DG.

  7. Ange den personliga åtkomsttoken (PAT) som ska användas för autentisering mot Azure Pipelines.

  8. Du kan också ange en kommaavgränsad lista med taggar som ska konfigureras på agenten. Taggar är inte skiftlägeskänsliga och var och en får inte innehålla mer än 256 tecken.

  9. Välj OK för att påbörja installationen av agenten på den här virtuella datorn.

  10. Lägg till tillägget till andra virtuella datorer som du vill inkludera i den här distributionsgruppen.

Använda distributionsuppgiften ARM-mall

Viktigt!

De här anvisningarna refererar till version 2 av uppgiften. Växla aktivitetsversionen från 3 till 2.

Du kan använda distributionsuppgiften ARM-mall för att distribuera en Arm-mall (Azure Resource Manager) som installerar Azure Pipelines Agent Azure VM-tillägget när du skapar en virtuell dator eller för att uppdatera resursgruppen så att tillägget tillämpas efter att den virtuella datorn har skapats. Du kan också använda de avancerade distributionsalternativen för arm-malldistributionsuppgiften för att distribuera agenten till distributionsgrupper.

Installera azure vm-tillägget "Azure Pipelines Agent" med hjälp av en ARM-mall

En ARM-mall är en JSON-fil som deklarativt definierar en uppsättning Azure-resurser. Mallen kan läsas automatiskt och de resurser som tillhandahålls av Azure. I samma mall kan du distribuera flera tjänster tillsammans med deras beroenden.

För en virtuell Windows-dator skapar du en ARM-mall och lägger till ett resurselement under resursen Microsoft.Compute/virtualMachine enligt följande:

"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

I Azure DevOps Server 2022 är auto|Nde tillåtna värdena för AgentMajorVersion . I Azure DevOps Server 2022.1 och senare är auto|2|3de 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')]"
     }
   }
  }
]

Där:

  • VSTSAccountName krävs. Den Azure Pipelines-prenumeration som ska användas. Exempel: Om url:en är https://dev.azure.com/contosoanger du bara contoso
  • TeamProject krävs. Det projekt som har distributionsgruppen definierad i det
  • DeploymentGroup krävs. Distributionsgruppen som distributionsagenten ska registreras mot
  • AgentName är valfritt. Om det inte anges används namnet på den virtuella datorn med -DG tillagd
  • Taggar är valfria. En kommaavgränsad lista över taggar som ska anges i agenten. Taggar är inte skiftlägeskänsliga och var och en får inte innehålla fler än 256 tecken
  • PATToken krävs. Den personliga åtkomsttoken som används för att autentisera mot Azure Pipelines för att ladda ned och konfigurera agenten

Kommentar

Om du distribuerar till en virtuell Linux-dator kontrollerar du att parametern type i koden är TeamServicesAgentLinux.

Felsöka tillägget

Det här är några kända problem med tillägget:

  • Statusfilen blir för stor: Det här problemet uppstår på virtuella Windows-datorer. Det har inte observerats på virtuella Linux-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 tröskelvärdet kan Azure inte läsa det helt och ger ett fel för statusen. Vid varje omstart av datorn utförs vissa åtgärder av tillägget (även om det kan ha installerats tidigare), som lägger till statusfilen. Om datorn startas om ett stort antal gånger överskrider statusfilens storlek tröskelvärdet, vilket orsakar det här felet. Felmeddelandet lyder: Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes. Observera att tilläggsinstallationen kan ha slutförts, men det här felet döljer det faktiska tillståndet för tillägget.

    Vi har åtgärdat det här problemet för omstarter av datorer (version 1.27.0.2 för Windows-tillägget och 1.21.0.1 för Linux-tillägget och framåt), så vid en omstart läggs ingenting till i statusfilen. Om du hade det här problemet med tillägget innan korrigeringen gjordes (dvs. du hade det här problemet med tidigare versioner av tillägget) och tillägget automatiskt lades till i versionerna med korrigeringen, kvarstår problemet. Detta beror på att den nyare versionen av tillägget fortfarande fungerar med den tidigare statusfilen vid tilläggsuppdateringen. För närvarande kan du fortfarande drabbas av det här problemet om du använder en tidigare version av tillägget med flaggan för att inaktivera automatiska uppdateringar av delversioner, eller om en stor statusfil har överförts från en tidigare tilläggsversion till de nyare versionerna som innehåller korrigeringen, eller av någon annan anledning. I så fall kan du komma förbi det här problemet genom att avinstallera och installera om tillägget. Om du avinstallerar tillägget rensas hela tilläggskatalogen, så en ny statusfil skapas för ny installation. Du måste installera den senaste versionen av tillägget. Den här lösningen är en permanent korrigering, och när du har följt detta bör du inte stöta på problemet igen.

  • Problem med anpassade data: Det här problemet gäller inte tillägget, men vissa kunder har rapporterat förvirring om den anpassade dataplatsen på den virtuella datorn vid byte av os-versioner. Vi föreslår följande lösning. Python 2 har blivit inaktuellt, så vi har gjort tillägget till att fungera med Python 3. Om du fortfarande använder tidigare os-versioner som inte har Python 3 installerat som standard bör du antingen installera Python 3 på den virtuella datorn eller växla till os-versioner som har Python 3 installerat som standard för att köra tillägget. På virtuella Linux-datorer kopieras anpassade data till filen /var/lib/waagent/ovf-env.xml för tidigare Microsoft Azure Linux-agentversioner och till /var/lib/waagent/CustomData för nyare Microsoft Azure Linux-agentversioner. Det verkar som om kunder som bara har hårdkodat en av dessa två sökvägar stöter på problem när de växlar os-versioner eftersom filen inte finns på den nya os-versionen, men den andra filen finns. För att undvika att bryta etableringen av den virtuella datorn bör du därför överväga båda filerna i mallen så att om den ena misslyckas bör den andra lyckas.

Mer information om ARM-mallar finns i Definiera resurser i Azure Resource Manager-mallar.

Så här använder du mallen:

  1. På fliken Distributionsgrupper i Azure Pipelines väljer du +Ny för att skapa en ny grupp.

  2. Ange ett namn för gruppen och välj sedan Skapa om du vill.

  3. På fliken Versioner i Azure Pipelines skapar du en versionspipeline med en fas som innehåller distributionsuppgiftenARM-mall.

  4. Ange de parametrar som krävs för uppgiften, till exempel Azure-prenumerationen, resursgruppens namn, plats och mallinformation och spara sedan versionspipelinen.

  5. Skapa en version från versionspipelinen för att installera agenterna.

Installera agenter med hjälp av avancerade distributionsalternativ

  1. På fliken Distributionsgrupper i Azure Pipelines väljer du +Ny för att skapa en ny grupp.

  2. Ange ett namn för gruppen och välj sedan Skapa om du vill.

  3. På fliken Versioner i Azure Pipelines skapar du en versionspipeline med en fas som innehåller distributionsuppgiftenARM-mall.

  4. Välj uppgiften och expandera avsnittet Avancerade distributionsalternativ för virtuella datorer . Konfigurera parametrarna i det här avsnittet på följande sätt:

    • Aktivera förutsättningar: välj Konfigurera med distributionsgruppagenten.

    • Azure Pipelines/TFS-slutpunkt: Välj en befintlig Team Foundation Server/TFS-tjänstanslutning som pekar på ditt mål. Agentregistrering för distributionsgrupper kräver åtkomst till ditt Visual Studio-projekt. Om du inte har någon befintlig tjänstanslutning väljer du Lägg till och skapa en nu. Konfigurera den så att den använder en personlig åtkomsttoken (PAT) med begränsat omfång till distributionsgrupp.

    • Projekt: Ange det projekt som innehåller distributionsgruppen.

    • Distributionsgrupp: Ange namnet på distributionsgruppen som agenterna ska registreras mot.

    • Kopiera Taggar för virtuella Azure-datorer till agenter: När de har angetts (markerad) kopieras taggar som redan har konfigurerats på den virtuella Azure-datorn till motsvarande distributionsgruppsagent. Som standard kopieras alla Azure-taggar med formatet Key: Value. Exempel: Role: Web

  5. Ange de andra parametrarna som krävs för uppgiften, till exempel Azure-prenumerationen, resursgruppens namn och plats och spara sedan versionspipelinen.

  6. Skapa en version från versionspipelinen för att installera agenterna.

Hjälp och support