Agents inrichten voor implementatiegroepen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Een implementatiegroep is een logische groep implementatiedoelmachines voor klassieke releasepijplijnen in Azure Pipelines. Voor elke doelserver in een implementatiegroep is een implementatieagent geïnstalleerd. In dit artikel wordt uitgelegd hoe u de implementatieagent installeert en inricht op elke fysieke of virtuele machine (VM) in een implementatiegroep.
U kunt de agent op een doelcomputer op een van de volgende manieren installeren:
- Voer het script uit dat wordt gegenereerd wanneer u de implementatiegroep maakt.
- Installeer de Azure Pipelines Agent Azure VM-extensie op de VIRTUELE machine.
- Gebruik de taak AzureResourceGroupDeploymentV2 in uw release-pijplijn om dynamisch een implementatiegroep te maken en agents in te richten.
De volgende secties bevatten stappen voor het implementeren van elke methode.
Vereisten
- Een Azure DevOps-organisatie en -project. Zie Een nieuwe organisatie maken of een project maken in Azure DevOps als u een organisatie of project wilt maken.
- Toegang tot ten minste één Windows- of Linux-implementatiedoelmachine met de juiste machtigingen.
- Voor de installatiemethoden van de Azure Pipelines-agent, een Azure-account en -abonnement met machtigingen voor het maken en beheren van Azure-VM's. Als u geen Azure-account hebt, meldt u zich aan voor een gratis account.
Voer het installatiescript uit op de doelservers
Wanneer u een implementatiegroep maakt, wordt er een script gegenereerd dat u op elke doelcomputer kunt uitvoeren om de server te registreren en de agent te installeren. De agent installeren met behulp van het gegenereerde registratiescript:
Selecteer in uw Azure DevOps-project pijplijnenimplementatiegroepen>.
Selecteer nieuw in het scherm Implementatiegroepen of selecteer Een implementatiegroep toevoegen als deze implementatiegroep de eerste is in het project.
Voer de naam van een implementatiegroep en een optionele beschrijving in en selecteer Vervolgens Maken.
Selecteer in het volgende scherm Windows of Linux voor het type doel dat u wilt registreren. Er wordt een registratiescript gegenereerd.
Selecteer Een persoonlijk toegangstoken in het script gebruiken voor verificatie. Zie Persoonlijke toegangstokens gebruiken voor meer informatie.
Selecteer Script kopiëren naar het Klembord.
Meld u op elke doelcomputer aan met een account met beheerdersmachtigingen.
Voer het gekopieerde script uit om de computer te registreren en de agent te installeren. Gebruik voor Windows-computers een PowerShell-opdrachtprompt met verhoogde bevoegdheid.
Terwijl het script wordt uitgevoerd:
Als u tags wilt toewijzen waarmee u implementaties kunt beperken tot bepaalde servers in een implementatiegroeptaak, voert u Y in wanneer u wordt gevraagd om tags in te voeren en voert u vervolgens een tag of tags in voor deze VIRTUELE machine.
Tags zijn beperkt tot 256 tekens, zijn hoofdlettergevoelig en er is geen limiet voor het aantal tags dat u kunt gebruiken.
Accepteer de standaardinstellingen wanneer u wordt gevraagd om een gebruikersaccount.
Notitie
Als er een fout optreedt bij het uitvoeren van het script dat een beveiligd kanaal niet kan worden gemaakt, voert u de volgende opdracht uit bij de Administrator PowerShell-prompt:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Nadat u elke doelserver hebt ingesteld, moet het script het bericht Service vstsagent.{organization-name}.{computer-name} started successfully
retourneren.
Op het tabblad Doelen van de pagina Implementatiegroepen van Azure Pipelines kunt u controleren of de agent wordt uitgevoerd. Vernieuw zo nodig de pagina.
De Azure Pipelines Agent Azure VM-extensie installeren
Als u Azure-VM's gebruikt als uw implementatiemachines, kunt u de Azure Pipelines Agent-extensie op elke VIRTUELE machine installeren. De extensie registreert de agent automatisch bij de opgegeven implementatiegroep in uw Azure DevOps-project.
Als u de agent wilt installeren met behulp van de extensie, maakt u eerst de implementatiegroep:
- Selecteer in uw Azure DevOps-project pijplijnenimplementatiegroepen>.
- Selecteer nieuw in het scherm Implementatiegroepen of selecteer Een implementatiegroep toevoegen als deze implementatiegroep de eerste is in het project.
- Voer de naam van een implementatiegroep en een optionele beschrijving in en selecteer Vervolgens Maken.
Installeer in Azure Portal de Azure Pipelines Agent-extensie op elke doel-VM:
Selecteer Op de vm-pagina Instellingenextensies>en toepassingen in het linkernavigatievenster.
Selecteer Toevoegen op het tabblad Extensie.
Zoek op de pagina Een extensie installeren naar en selecteer Azure Pipelines Agent en selecteer vervolgens Volgende.
Geef in het scherm Agentextensie voor Azure Pipelines configureren de volgende informatie op:
- Url van Azure DevOps-organisatie: voer de URL in van uw Azure DevOps-organisatie, zoals
https://dev.azure.com/contoso
. - Teamproject: voer uw projectnaam in, zoals myProject.
- Implementatiegroep: voer de naam in van de implementatiegroep die u hebt gemaakt.
- Agentnaam: Voer desgewenst een naam in voor de agent. Als u niets invoert, krijgt de agent de naam van de VIRTUELE machine waaraan is toegevoegd
-DG
. - Persoonlijk toegangstoken: voer het persoonlijke toegangstoken (PAT) in dat moet worden gebruikt voor verificatie bij Azure Pipelines.
- Tags: Geef eventueel een door komma's gescheiden lijst met tags op die op de agent moeten worden geconfigureerd. Tags zijn beperkt tot 256 tekens, zijn hoofdlettergevoelig en er is geen limiet voor het aantal tags dat u kunt gebruiken.
- Url van Azure DevOps-organisatie: voer de URL in van uw Azure DevOps-organisatie, zoals
Selecteer Beoordelen en maken en wanneer de validatie is geslaagd, de optie Maken.
De taak AzureResourceGroupDeploymentV2 gebruiken
U kunt de azureResourceGroupDeploymentV2-taak gebruiken om een ARM-sjabloon (Azure Resource Manager) te implementeren. De sjabloon kan de Azure Pipelines Agent-extensie installeren tijdens het maken van een Azure-VM of de resourcegroep bijwerken om de extensie toe te passen nadat een virtuele machine is gemaakt.
U kunt ook de geavanceerde implementatieopties van de AzureResourceGroupDeployment-taak gebruiken om de agent te implementeren.
Een implementatiegroep maken
Maak eerst de implementatiegroep:
- Selecteer in uw Azure DevOps-project pijplijnenimplementatiegroepen>.
- Selecteer nieuw in het scherm Implementatiegroepen of selecteer Een implementatiegroep toevoegen als deze implementatiegroep de eerste is in het project.
- Voer de naam van een implementatiegroep en een optionele beschrijving in en selecteer Vervolgens Maken.
Een ARM-sjabloon gebruiken om de agent te installeren
Een ARM-sjabloon is een JSON-bestand dat declaratief een set Azure-resources definieert. Azure leest de sjabloon automatisch en richt de resources in. U kunt meerdere services en de bijbehorende afhankelijkheden in één sjabloon implementeren.
Als u de implementatieagent wilt registreren en installeren met behulp van een ARM-sjabloon, voegt u een resource-element toe onder de Microsoft.Compute/virtualMachine
resource, zoals wordt weergegeven in de volgende code.
"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
Voor een Virtuele Linux-machine moet de type
parameter in properties
de code zijn TeamServicesAgentLinux
.
Notitie
In Azure DevOps Server 2022.1 en hoger zijn de toegestane waarden voor AgentMajorVersion
auto|2|3
. In Azure DevOps Server 2022.0 en eerder zijn de toegestane waarden voor AgentMajorVersion
auto|N
.
"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')]"
}
}
}
]
In de voorgaande code:
VSTSAccountName
is de vereiste Azure Pipelines-organisatie die moet worden gebruikt. Als uw Azure DevOps-URL bijvoorbeeld ishttps://dev.azure.com/contoso
, geeft u gewoon opcontoso
TeamProject
is het vereiste project waarvoor de implementatiegroep is gedefinieerd.DeploymentGroup
is de vereiste implementatiegroep voor het registreren van de agent bij.AgentName
is een optionele agentnaam. Als deze niet is opgegeven, krijgt de agent de naam van de VIRTUELE machine waaraan-DG
is toegevoegd.Tags
is een optionele, door komma's gescheiden lijst met tags die moeten worden ingesteld op de agent. Tags zijn beperkt tot 256 tekens, zijn hoofdlettergevoelig en er is geen limiet voor het aantal tags dat u kunt gebruiken.PATToken
is de vereiste PAT voor verificatie bij Azure Pipelines voor het downloaden en configureren van de agent.
Zie Resources definiëren in Azure Resource Manager-sjablonen voor meer informatie over ARM-sjablonen.
De sjabloon gebruiken in een release-pijplijn
Een release-pijplijn maken:
- Selecteer Pijplijnreleases> in het linkermenu en selecteer vervolgens Nieuwe>nieuwe release-pijplijn.
- Maak op het tabblad Releases van Azure Pipelines een release-pijplijn met een fase die de arm-sjabloonimplementatietaak bevat.
- In deze sjabloon wordt versie 2 van de taak gebruikt, dus wijzig in het scherm implementatie-instellingen voor De Azure-resourcegroep de taakversie van 3.* in 2.*.
- Geef de parameters op die nodig zijn voor de taak, zoals het Azure-abonnement, de naam van de resourcegroep, de locatie, de sjabloongegevens en de te ondernemen actie.
- Sla de release-pijplijn op en maak een release van de pijplijn om de agents te installeren.
Agents installeren met behulp van de geavanceerde implementatieopties
U kunt de agent ook installeren met behulp van geavanceerde implementatieopties. Volg de voorgaande stappen, maar vouw in het scherm implementatie-instellingen van de Azure-resourcegroep de sectie Geavanceerde implementatieopties voor virtuele machines uit.
Selecteer Onder Vereisten inschakelen de optie Configureren met implementatiegroepagent.
Geef de volgende vereiste parameters en instellingen op:
Azure Pipelines-serviceverbinding: selecteer een bestaande serviceverbinding die naar uw doel verwijst.
Als u geen bestaande serviceverbinding hebt, selecteert u Nieuw en maakt u er een. Zie Een serviceverbinding maken voor meer informatie. Configureer de serviceverbinding om een PAT te gebruiken met een bereik dat beperkt is tot de implementatiegroep.
Teamproject: selecteer het project dat de implementatiegroep bevat.
Implementatiegroep: selecteer de implementatiegroep waaraan u de agents wilt registreren.
Selecteer Azure VM-tags kopiëren naar agents om eventuele tags die al op de Azure-VM zijn geconfigureerd, te kopiëren naar de bijbehorende agent voor de implementatiegroep.
Standaard worden alle Azure-tags gekopieerd met behulp van de
Key: Value
indeling, bijvoorbeeldRole: Web
.
Sla de pijplijn op en maak een release om de agents te installeren.
Problemen met de extensie oplossen
Er zijn enkele bekende problemen met de Azure Pipelines Agent-extensie.
Statusbestand is te groot
Dit probleem kan optreden op Windows-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 groter is dan het maximum, kan Azure deze niet volledig lezen en krijgt de status een foutmelding.
Hoewel de extensie in eerste instantie kan worden geïnstalleerd, worden er telkens wanneer de computer opnieuw wordt opgestart, enkele bewerkingen uitgevoerd die aan het statusbestand worden toegevoegd. Als de computer vaak opnieuw wordt opgestart, kan de grootte van het statusbestand de drempelwaarde overschrijden, waardoor de fout Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes
wordt veroorzaakt. Hoewel de installatie van de extensie kan slagen, verbergt deze fout de werkelijke status van de extensie.
Dit probleem met het opnieuw opstarten van de computer is opgelost vanaf versie 1.27.0.2
voor de Windows-extensie en 1.21.0.1
voor de Linux-extensie. Een herstart voegt nu niets toe aan het statusbestand. Als u dit probleem echter hebt gehad met een eerdere versie van de extensie en uw extensie automatisch is bijgewerkt naar de vaste versie, kan het probleem zich blijven voordoen. Nieuwere versies van de extensie kunnen nog steeds werken met een eerder statusbestand.
U kunt dit probleem tegenkomen als u een eerdere versie van de extensie gebruikt met de vlag om automatische updates van secundaire versies uit te schakelen of als een groot statusbestand van een eerdere versie naar een vaste versie is overgedragen. Zo ja, dan kunt u het probleem oplossen door de extensie te verwijderen en opnieuw te installeren. Als u de extensie verwijdert, wordt de volledige extensiemap opgeschoond en wordt er een nieuw statusbestand gemaakt voor een nieuwe installatie van de nieuwste versie.
Probleem met aangepaste gegevens
Python 2 is afgeschaft en de Azure Pipelines Agent-extensie werkt met Python 3. Als u nog steeds besturingssysteemversies gebruikt waarop Python 3 niet standaard is geïnstalleerd, moet u Python 3 installeren op de VIRTUELE machine of overschakelen naar een besturingssysteemversie waarop Python 3 standaard is geïnstalleerd. Anders kan er verwarring zijn met betrekking tot de aangepaste gegevenslocatie op de VIRTUELE machine wanneer u schakelt tussen besturingssysteemversies.
Op Linux-VM's worden aangepaste gegevens gekopieerd naar /var/lib/waagent/ovf-env.xml voor eerdere agentversies en naar /var/lib/waagent/CustomData voor nieuwere versies. Als u slechts één van deze twee paden coderen, kunt u problemen ondervinden bij het schakelen tussen besturingssysteemversies omdat een van de paden niet bestaat in de nieuwe versie van het besturingssysteem, hoewel het andere pad aanwezig is. Om te voorkomen dat de VM-inrichting wordt onderbroken, kunt u overwegen beide paden in de sjabloon te gebruiken, zodat de andere moet slagen als het ene pad mislukt.
Help en ondersteuning
- Verken tips voor probleemoplossing.
- Krijg advies over Stack Overflow.
- Stel uw vragen, zoek naar antwoorden of stel een functie voor in de Azure DevOps Developer Community.
- Ondersteuning krijgen voor Azure DevOps.