Delen via


Omgeving - resource van virtuele machine

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Gebruik VM-resources (virtuele machines) om implementaties op meerdere machines met YAML-pijplijnen te beheren. Met VM-resources kunt u agents op uw eigen servers installeren voor rolling implementaties.

VM-resources maken verbinding met omgevingen. Nadat u een omgeving hebt gedefinieerd, kunt u VM's toevoegen aan het doel met implementaties. De weergave implementatiegeschiedenis in een omgeving biedt traceerbaarheid van uw VM naar uw pijplijn.

Vereisten

U moet ten minste een basislicentie en toegang hebben tot de volgende gebieden:

  • de opslagplaats die is verbonden met uw pijplijn
  • de VIRTUELE machine die u wilt verbinden met de omgeving

Zie Beveiligingsresources voor pijplijnen voor meer informatie over beveiliging voor Azure Pipelines.

Als u een VIRTUELE machine aan een omgeving wilt toevoegen, moet u de beheerdersrol hebben voor de bijbehorende implementatiegroep. Een implementatiegroep is een set doelservers die beschikbaar zijn voor de organisatie. Meer informatie over implementatiegroep- en omgevingsmachtigingen.

Notitie

Als u een agent voor een implementatiegroep configureert of als er een fout optreedt bij het registreren van een VM-omgevingsresource, moet u het PAT-bereik instellen op Alle toegankelijke organisaties.

Een VM-resource maken

Notitie

U kunt hetzelfde proces gebruiken om fysieke machines in te stellen met een registratiescript.

De eerste stap bij het toevoegen van een VM-resource is het definiëren van een omgeving.

Een omgeving definiëren

  1. Selecteer Omgeving maken of Nieuwe omgeving, afhankelijk van of dit uw eerste omgeving is.
  2. Voeg een naam (vereist) toe voor de omgeving en een beschrijving.
  3. Sla de nieuwe omgeving op.

Een resource toevoegen

  1. Selecteer uw omgeving en kies Resource toevoegen.

  2. Selecteer Virtuele machines voor uw resourcetype . Selecteer Volgende.

    Voeg een omgeving toe.

  3. Kies Windows of Linux voor het besturingssysteem.

  4. Kopieer het registratiescript. Uw script is een PowerShell-script als u Windows en een Linux-script hebt geselecteerd als u Linux hebt geselecteerd.

    Voeg een virtuele machine toe.

  5. Voer het gekopieerde script uit op elk van de doel-VM's die u wilt registreren bij deze omgeving.

    • Als u windows installeert, moet u het script uitvoeren als PowerShell-beheerder.
    • Als u linux installeert, moet u gemachtigd zijn om uitvoerbare scripts te downloaden en uit te voeren.

    Notitie

    • Het Personal Access Token (PAT) voor de aangemelde gebruiker wordt opgenomen in het script. De PAT verloopt op de dag dat u het script genereert.
    • Als er al een andere agent op uw VM wordt uitgevoerd, geeft u een unieke naam op die de agent moet registreren bij de omgeving.
    • Zie Zelf-hostende Linux-agents en Zelf-hostende Windows-agents voor meer informatie over het installeren van het agentscript. De agentscripts voor VM-resources zijn net als de scripts voor zelf-hostende agents en u kunt dezelfde opdrachten gebruiken.
  6. Zodra uw virtuele machine is geregistreerd, wordt deze weergegeven als een omgevingsresource op het tabblad Resources van de omgeving.

  7. Als u meer VM's wilt toevoegen, kopieert u het script opnieuw. Selecteer Virtuele resourcemachines> toevoegen. De Windows- en Linux-scripts zijn hetzelfde voor alle VM's die aan de omgeving zijn toegevoegd.

  8. Wanneer het VM-script is geïnstalleerd, wordt uw VIRTUELE machine weergegeven in de lijst met resources voor de omgeving.

    Resources weergeven.

VM gebruiken in pijplijnen

Doel-VM's in uw pijplijn door te verwijzen naar de omgeving. De pijplijntaak wordt standaard uitgevoerd voor alle vm's die zijn gedefinieerd voor een omgeving met een resourceName.

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 zijn hoofdlettergevoelig. Als u de onjuiste behuizing opgeeft, worden er geen overeenkomende resources gevonden in de omgeving. Zie het YAML-schema voor meer informatie.

U kunt een specifieke virtuele machine uit de omgeving selecteren om alleen de implementatie te ontvangen door deze op te geven door deze op te geven.resourceName Als u bijvoorbeeld alleen wilt implementeren op de virtuele-machineresource met de naam USHAN-PC in de VMenv omgeving, voegt u de parameter toe en geeft u deze resourceName de waarde .USHAN-PC

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: USHAN-PC # only deploy to the VM resource named USHAN-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Zie het YAML-schema voor meer informatie over implementatietaken.

Tags toevoegen en beheren

Met tags kunt u zich richten op een set specifieke VM's in een omgeving voor implementatie. U kunt tags toevoegen aan de virtuele machine als onderdeel van het interactieve registratiescript of via de gebruikersinterface. Tags zijn elk beperkt tot 256 tekens. Er is geen limiet voor het aantal tags dat u kunt gebruiken.

Voeg tags toe aan of verwijder deze uit de resourceweergave door Meer acties voor een VM-resource te selecteren.

VM-tags instellen.

Wanneer u meerdere tags selecteert, worden vm's met alle tags gebruikt in uw pijplijn. Deze pijplijn is bijvoorbeeld gericht op VM's met zowel de als prod de windows tags. Als een VIRTUELE machine slechts een van deze tags heeft, is deze 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 virtual machines with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Implementatiestrategie toepassen

Pas een implementatiestrategie toe om te definiëren hoe uw toepassing wordt geïmplementeerd. De runOnce strategie en de rolling strategie voor VM's worden beide ondersteund. Zie Implementatietaken/Implementatiestrategieën voor meer informatie over implementatiestrategieën en levenscyclushaken.

Implementatiegeschiedenis weergeven

Selecteer het tabblad Implementaties voor volledige tracering van doorvoeringen en werkitems en een implementatiegeschiedenis voor meerdere pijplijnen per omgeving en resource.

VMDeployments_view

Een VIRTUELE machine verwijderen uit een omgeving

Windows-omgeving

Als u VM's uit een Windows-omgeving wilt verwijderen, voert u de volgende opdracht uit. Zorg ervoor dat u de volgende taken uitvoert:

  • Voer de opdracht uit vanaf een PowerShell-opdrachtprompt van een beheerder
  • Voer de opdracht uit op elke computer
  • Voer de opdracht uit in hetzelfde mappad als de omgevingsregistratieopdracht is uitgevoerd
./config.cmd remove

Linux-omgeving

Als u een VIRTUELE machine uit een Linux-omgeving wilt verwijderen, voert u de volgende opdracht uit op elke computer.

./config.sh remove

Bekende beperkingen

Wanneer u een fase opnieuw probeert uit te voeren, wordt de implementatie opnieuw uitgevoerd op alle VM's en niet alleen mislukte doelen.