VM-resources beheren in omgevingen
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
In dit artikel wordt beschreven hoe u vm-resources (virtuele machines) gebruikt in omgevingen voor het beheren van Azure Pipelines-implementaties op meerdere machines. U kunt agents ook installeren op uw eigen servers voor rolling implementaties.
VM-resources kunnen bestaan in omgevingen, zoals Ontwikkeling, Testen of Productie. Nadat u een omgeving hebt gedefinieerd, kunt u VM's toevoegen aan het doel met implementaties. De implementatiegeschiedenis van de omgeving biedt traceerbaarheid van elke VIRTUELE machine naar uw pijplijn.
Vereisten
- Toegang tot een bronopslagplaats die is verbonden met uw pijplijn.
- Toegang en machtigingen voor het downloaden en uitvoeren van uitvoerbare scripts op de VM's die u wilt verbinden met de omgeving.
- Machtigingen voor projectbeheerder of buildbeheerder in het Azure DevOps-project dat de omgeving bevat. Zie Pijplijnbeveiligingsresources voor meer informatie.
- Beheerdersrol voor de implementatiegroep of een set doelservers die beschikbaar zijn voor de organisatie. Zie implementatiegroep- en omgevingsmachtigingen voor meer informatie.
Notitie
Als u een agent voor een implementatiegroep wilt configureren of als er een fout optreedt bij het registreren van een VM-omgevingsresource, moet u het bereik van uw persoonlijke toegangstoken (PAT) instellen op Alle toegankelijke organisaties.
Maak de omgeving
Gebruik de volgende procedure om een VM-resource toe te voegen aan een omgeving. U kunt hetzelfde proces gebruiken om fysieke machines in te stellen.
Een VM-resource toevoegen
Ga in uw Azure DevOps-project naar Pijplijnomgevingen> en selecteer vervolgens Omgeving maken of Nieuwe omgeving.
Voeg in het eerste scherm Nieuwe omgeving een naam en een optionele beschrijving toe.
Selecteer onder Resource virtuele machines en selecteer vervolgens Volgende.
Het registratiescript kopiëren
De agentscripts voor VM-resources zijn net als de scripts voor zelf-hostende agents en gebruiken dezelfde opdrachten. De scripts bevatten een Azure DevOps Personal Access Token (PAT) voor de aangemelde gebruiker, die drie uur na het genereren van het script verloopt.
Kies Linux onder Besturingssysteem in het volgende scherm Nieuwe omgeving.
Kopieer het Linux-registratiescript.
Het script is hetzelfde voor alle Linux-VM's die aan de omgeving zijn toegevoegd. Zie Zelf-hostende Linux-agents voor meer informatie over het installeren van het agentscript.
Het gekopieerde script uitvoeren
Selecteer Sluiten en houd er rekening mee dat de nieuwe omgeving is gemaakt. Als u het script opnieuw wilt kopiëren, bijvoorbeeld als uw PAT verloopt, selecteert u Resource toevoegen.
Voer het gekopieerde script uit op elke doel-VM die u wilt registreren bij de omgeving.
Notitie
Als op de VIRTUELE machine al een andere agent wordt uitgevoerd, geeft u een unieke naam op voor de agent die bij de omgeving moet worden geregistreerd.
Zodra de VIRTUELE machine is geregistreerd, wordt deze weergegeven als een resource op het tabblad Resources van de omgeving.
VM's gebruiken in pijplijnen
In uw YAML-pijplijn kunt u zich richten op VM's door te verwijzen naar hun omgeving. De taak is standaard gericht op alle vm's die zijn geregistreerd voor die omgeving resourceName
.
Notitie
Wanneer u een fase opnieuw probeert, wordt de implementatie opnieuw uitgevoerd op alle VM's, niet alleen mislukte doelen.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceName: VMenv
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Notitie
De resourceType
waarden zoals virtualMachine
hoofdlettergevoelig. Onjuiste behuizing resulteert in geen overeenkomende resources gevonden.
U kunt implementeren op specifieke VM's in de omgeving door ze op te geven in resourceName
. In het volgende voorbeeld wordt alleen geïmplementeerd op de VM-resource met de naam RESOURCE-PC
in de VMenv
omgeving.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Zie het YAML-pijplijnschema voor meer informatie over YAML-pijplijnimplementatietaken.
Tags toevoegen en beheren
Tags zijn een manier om een specifieke set virtuele machines in een omgeving te richten voor implementatie. Tags mogen maximaal 256 tekens bevatten. Er is geen limiet voor het aantal tags dat u kunt gebruiken.
U kunt tags toevoegen of tags verwijderen voor VM's in het interactieve registratiescript of via de gebruikersinterface door Meer acties voor een VM-resource te selecteren.
Als u meerdere tags opgeeft, gebruikt de pijplijn alleen virtuele machines die alle tags bevatten. Het volgende voorbeeld is alleen gericht op VM's met zowel de als prod
de windows
tags. VM's met slechts één of geen van de tags zijn niet gericht.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
tags: windows,prod # only deploy to VMs with both windows and prod tags
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Implementatiestrategie toepassen
U kunt een implementatie strategy
toepassen om te definiëren hoe u uw toepassing kunt implementeren. VM's ondersteunen zowel de runOnce
als de rolling
strategieën. Zie Implementatiestrategieën voor meer informatie over implementatiestrategieën en levenscyclushook.
Implementatiegeschiedenis weergeven
Selecteer het tabblad Implementaties voor volledige tracering van doorvoeringen en werkitems en een implementatiegeschiedenis voor meerdere pijplijnen per omgeving en resource.
Een VIRTUELE machine verwijderen uit een omgeving
Als u een VIRTUELE machine uit een Linux-omgeving wilt verwijderen, voert u de volgende opdracht uit op elke computer.
./config.sh remove