Delen via


Agents inrichten voor implementatiegroepen

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Met implementatiegroepen kunt u eenvoudig logische groepen doelmachines definiëren voor implementatie en de vereiste agent op elke computer installeren. In dit artikel wordt uitgelegd hoe u een implementatiegroep maakt en hoe u de agent installeert en inricht op elke virtuele of fysieke machine in uw implementatiegroep.

U kunt de agent op een van de volgende manieren installeren:

Zie voor meer informatie over agents en pijplijnen:

Voer het installatiescript uit op de doelservers

  1. Kies +Nieuw om een nieuwe groep te maken op het tabblad Implementatiegroepen van Azure Pipelines.

  2. Voer een naam in voor de groep en desgewenst een beschrijving en kies Vervolgens Maken.

  3. Selecteer in de sectie Machines registreren met behulp van de opdrachtregel van de volgende pagina het besturingssysteem van de doelcomputer.

  4. Kies Een persoonlijk toegangstoken gebruiken in het script voor verificatie. Meer informatie.

  5. Kies Het script naar het Klembord kopiëren.

  6. Meld u op zijn beurt aan bij elke doelcomputer met behulp van het account met de juiste machtigingen en:

    • Open een Beheer istrator PowerShell-opdrachtprompt, plak het script dat u hebt gekopieerd en voer het uit om de computer te registreren bij deze groep.

    • Als er een fout optreedt bij het uitvoeren van het script dat een beveiligd kanaal niet kan worden gemaakt, voert u deze opdracht uit bij de PowerShell-prompt van Beheer istrator:

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

    • Wanneer u wordt gevraagd om tags voor de agent te configureren, drukt Y u op alle tags die u gebruikt om subsets van de machines in de groep te identificeren voor gedeeltelijke implementaties.

      Met tags die u toewijst, kunt u de implementatie beperken tot specifieke servers wanneer de implementatiegroep wordt gebruikt in een taak uitvoeren op computergroepen.

    • Wanneer u wordt gevraagd om het gebruikersaccount, drukt u op Return om de standaardwaarden te accepteren.

    • Wacht tot het script is voltooid met het bericht Service vstsagent.{organization-name}.{computer-name} started successfully.

  7. Open op de pagina Implementatiegroepen van Azure Pipelines het tabblad Machines en controleer of de agents worden uitgevoerd. Als de tags die u hebt geconfigureerd niet zichtbaar zijn, vernieuwt u de pagina.

De Azure Pipelines Agent Azure VM-extensie installeren

  1. Kies +Nieuw om een nieuwe groep te maken op het tabblad Implementatiegroepen van Azure Pipelines.

  2. Voer een naam in voor de groep en desgewenst een beschrijving en kies Vervolgens Maken.

  3. Open in Azure Portal voor elke VIRTUELE machine die wordt opgenomen in de implementatiegroep de blade Extensie , kies + Toevoegen om de lijst nieuwe resources te openen en selecteer Azure Pipelines Agent.

    De Azure Pipelines Agent-extensie installeren

  4. Geef op de blade Extensie installeren de naam op van het Azure Pipelines-abonnement dat u wilt gebruiken. Als de URL bijvoorbeeld ishttps://dev.azure.com/contoso, geeft u alleen contoso op.

  5. Geef de projectnaam en de naam van de implementatiegroep op.

  6. Geef desgewenst een naam op voor de agent. Als dit niet is opgegeven, wordt de naam van de VIRTUELE machine gebruikt die is toegevoegd aan -DG.

  7. Voer het persoonlijke toegangstoken (PAT) in dat moet worden gebruikt voor verificatie met Azure Pipelines.

  8. U kunt eventueel een door komma's gescheiden lijst met tags opgeven die op de agent worden geconfigureerd. Tags zijn niet hoofdlettergevoelig en mogen niet langer zijn dan 256 tekens.

  9. Kies OK om de installatie van de agent op deze VM te starten.

  10. Voeg de extensie toe aan alle andere VM's die u wilt opnemen in deze implementatiegroep.

De arm-sjabloonimplementatietaak gebruiken

Belangrijk

Deze instructies verwijzen naar versie 2 van de taak. Schakel de taakversie van 3 naar 2.

U kunt de ARM-sjabloonimplementatietaak gebruiken om een ARM-sjabloon (Azure Resource Manager) te implementeren waarmee de Azure Pipelines Agent Azure VM-extensie wordt geïnstalleerd wanneer u een virtuele machine maakt of om de resourcegroep bij te werken om de extensie toe te passen nadat de virtuele machine is gemaakt. U kunt ook de geavanceerde implementatieopties van de ARM-sjabloonimplementatietaak gebruiken om de agent te implementeren in implementatiegroepen.

De Azure Pipelines Agent-azure-VM-extensie installeren met behulp van een ARM-sjabloon

Een ARM-sjabloon is een JSON-bestand dat declaratief een set Azure-resources definieert. De sjabloon kan automatisch worden gelezen en de resources die door Azure zijn ingericht. U kunt in één enkele sjabloon meerdere services plus de bijbehorende afhankelijkheden implementeren.

Voor een Virtuele Windows-machine maakt u een ARM-sjabloon en voegt u een resource-element toe onder de Microsoft.Compute/virtualMachine resource, zoals hier wordt weergegeven:

"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')]"
     }
   }
  }
]

Notitie

In Azure DevOps Server 2022 zijn de toegestane waarden.AgentMajorVersionauto|N In Azure DevOps Server 2022.1 en hoger zijn de toegestane waarden voor AgentMajorVersionauto|2|3.

"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')]"
     }
   }
  }
]

Hierin:

  • VSTSAccountName is vereist. Het Azure Pipelines-abonnement dat moet worden gebruikt. Voorbeeld: Als uw URL is https://dev.azure.com/contoso, geeft u gewoon op contoso
  • TeamProject is vereist. Het project waaraan de implementatiegroep is gedefinieerd
  • DeploymentGroup is vereist. De implementatiegroep waarmee de implementatieagent wordt geregistreerd
  • AgentName is optioneel. Als dit niet is opgegeven, wordt de naam van de virtuele machine met -DG toegevoegde gegevens gebruikt
  • Tags is optioneel. Een door komma's gescheiden lijst met tags die op de agent worden ingesteld. Tags zijn niet hoofdlettergevoelig en elk mag niet langer zijn dan 256 tekens
  • PATToken is vereist. Het persoonlijke toegangstoken dat wordt gebruikt voor verificatie bij Azure Pipelines om de agent te downloaden en te configureren

Notitie

Als u implementeert op een Virtuele Linux-machine, moet u ervoor zorgen dat de type parameter in de code is TeamServicesAgentLinux.

Problemen met de extensie oplossen

Dit zijn enkele bekende problemen met de extensie:

  • Statusbestand wordt te groot: dit probleem treedt op op Windows-VM's; het is niet waargenomen op Linux-VM's. Het statusbestand bevat een JSON-object dat de huidige status van de extensie beschrijft. Het object is een tijdelijke aanduiding voor het weergeven van de bewerkingen die tot nu toe zijn uitgevoerd. Azure leest dit statusbestand en geeft het statusobject door als reactie op API-aanvragen. Het bestand heeft een maximale toegestane grootte; als de grootte de drempelwaarde overschrijdt, kan Azure deze niet volledig lezen en krijgt de status een foutmelding. Bij elke computer die opnieuw wordt opgestart, worden sommige bewerkingen uitgevoerd door de extensie (hoewel deze mogelijk eerder is geïnstalleerd), waarmee het statusbestand wordt toegevoegd. Als de computer een groot aantal keren opnieuw wordt opgestart, overschrijdt de statusbestandsgrootte de drempelwaarde, waardoor deze fout wordt veroorzaakt. Het foutbericht leest: Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes. Houd er rekening mee dat de installatie van de extensie mogelijk is geslaagd, maar deze fout verbergt de werkelijke status van de extensie.

    We hebben dit probleem opgelost voor het opnieuw opstarten van de computer (versie 1.27.0.2 voor Windows-extensie en 1.21.0.1 voor de Linux-extensie, dus bij opnieuw opstarten wordt er niets toegevoegd aan het statusbestand. Als u dit probleem met uw extensie had voordat de oplossing werd gemaakt (dat wil zeggen dat u dit probleem ondervindt met eerdere versies van de extensie) en uw extensie automatisch is aangepast aan de versies met de oplossing, blijft het probleem behouden. Dit komt doordat bij de extensie-update de nieuwere versie van de extensie nog steeds werkt met het eerdere statusbestand. Op dit moment kunt u dit probleem nog steeds ondervinden als u een eerdere versie van de extensie gebruikt met de vlag om automatische updates van secundaire versies uit te schakelen of als er een groot statusbestand is uitgevoerd van een eerdere extensieversie naar de nieuwere versies die de fix bevatten, of om een andere reden. Als dat het geval is, kunt u dit probleem voltooien door de extensie te verwijderen en opnieuw te installeren. Als u de extensie verwijdert, wordt de volledige extensiemap opgeschoond, zodat er een nieuw statusbestand wordt gemaakt voor nieuwe installatie. U moet de nieuwste versie van de extensie installeren. Deze oplossing is een permanente oplossing. Nadat u dit hebt uitgevoerd, moet u het probleem niet opnieuw tegenkomen.

  • Probleem met aangepaste gegevens: dit probleem is niet bij de extensie, maar sommige klanten hebben verwarring gemeld met betrekking tot de aangepaste gegevenslocatie op de VM bij het schakelen tussen besturingssysteemversies. We raden de volgende tijdelijke oplossing aan. Python 2 is afgeschaft, dus we hebben de extensie gemaakt om te werken met Python 3. Als u nog steeds eerdere versies van het besturingssysteem gebruikt waarop Python 3 standaard niet is geïnstalleerd, moet u Python 3 installeren op de VIRTUELE machine of overschakelen naar besturingssysteemversies waarop Python 3 standaard is geïnstalleerd. Op linux-VM's worden aangepaste gegevens gekopieerd naar het bestand /var/lib/waagent/ovf-env.xml voor eerdere versies van Microsoft Azure Linux Agent en naar /var/lib/waagent/CustomData nieuwere Versies van Microsoft Azure Linux Agent. Het lijkt erop dat klanten die slechts een van deze twee paden hebben vastgelegd, problemen ondervinden bij het schakelen tussen besturingssysteemversies omdat het bestand niet bestaat in de nieuwe versie van het besturingssysteem, maar het andere bestand aanwezig is. Om te voorkomen dat de VM-inrichting wordt onderbroken, moet u rekening houden met beide bestanden in de sjabloon, zodat als de ene mislukt, de andere moet slagen.

Zie Resources definiëren in Azure Resource Manager-sjablonen voor meer informatie over ARM-sjablonen.

De sjabloon gebruiken:

  1. Kies +Nieuw om een nieuwe groep te maken op het tabblad Implementatiegroepen van Azure Pipelines.

  2. Voer een naam in voor de groep en desgewenst een beschrijving en kies Vervolgens Maken.

  3. Maak op het tabblad Releases van Azure Pipelines een release-pijplijn met een fase die de arm-sjabloonimplementatietaak bevat.

  4. Geef de parameters op die vereist zijn voor de taak, zoals het Azure-abonnement, de naam van de resourcegroep, de locatie en de sjabloongegevens, en sla vervolgens de releasepijplijn op.

  5. Maak een release van de release-pijplijn om de agents te installeren.

Agents installeren met behulp van de geavanceerde implementatieopties

  1. Kies +Nieuw om een nieuwe groep te maken op het tabblad Implementatiegroepen van Azure Pipelines.

  2. Voer een naam in voor de groep en desgewenst een beschrijving en kies Vervolgens Maken.

  3. Maak op het tabblad Releases van Azure Pipelines een release-pijplijn met een fase die de arm-sjabloonimplementatietaak bevat.

  4. Selecteer de taak en vouw de sectie Geavanceerde implementatieopties voor virtuele machines uit. Configureer de parameters in deze sectie als volgt:

    • Vereisten inschakelen: selecteer Configureren met implementatiegroepagent.

    • Azure Pipelines/TFS-eindpunt: selecteer een bestaande Team Foundation Server-/TFS-serviceverbinding die verwijst naar uw doel. Agentregistratie voor implementatiegroepen vereist toegang tot uw Visual Studio-project. Als u geen bestaande serviceverbinding hebt, kiest u Nu toevoegen en maken. Configureer het voor het gebruik van een persoonlijk toegangstoken (PAT) met een bereik dat beperkt is tot de implementatiegroep.

    • Project: Geef het project op dat de implementatiegroep bevat.

    • Implementatiegroep: Geef de naam op van de implementatiegroep waarmee de agents worden geregistreerd.

    • Kopieer Azure VM-tags naar agents: wanneer deze zijn ingesteld (aangevinkt), worden alle tags die al zijn geconfigureerd op de Azure-VM gekopieerd naar de bijbehorende agent voor de implementatiegroep. Standaard worden alle Azure-tags gekopieerd met behulp van de indeling Key: Value. Bijvoorbeeld: Role: Web.

  5. Geef de andere parameters op die vereist zijn voor de taak, zoals het Azure-abonnement, de naam van de resourcegroep en de locatie, en sla vervolgens de releasepijplijn op.

  6. Maak een release van de release-pijplijn om de agents te installeren.

Help en ondersteuning