Delen via


Omgevingen maken en richten

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

In dit artikel wordt uitgelegd hoe u Azure Pipelines-omgevingen maakt en richt. Een omgeving is een verzameling resources die u kunt richten op implementaties vanuit een pijplijn.

Een omgeving vertegenwoordigt een logisch doel waar uw pijplijn software implementeert. Typische omgevingsnamen zijn Dev, Test, QA, Staging en Production.

Notitie

Azure DevOps-omgevingen zijn niet beschikbaar in klassieke pijplijnen. Voor klassieke pijplijnen bieden implementatiegroepen vergelijkbare functionaliteit.

Omgevingen bieden de volgende voordelen:

  • Implementatiegeschiedenis. De naam van de pijplijn en uitvoeringsdetails worden vastgelegd voor implementaties in een omgeving en de bijbehorende resources. In de context van meerdere pijplijnen die gericht zijn op dezelfde omgeving of resource, kunt u de implementatiegeschiedenis van een omgeving gebruiken om de bron van wijzigingen te identificeren.

  • Traceerbaarheid van doorvoeringen en werkitems. U kunt taken in de pijplijnuitvoering bekijken die zijn gericht op een omgeving. U kunt ook de doorvoeringen en werkitems bekijken die zojuist zijn geïmplementeerd in de omgeving. Met traceerbaarheid kunt u ook bijhouden of een doorvoering van codewijziging of een functie/opgelost werkitem een omgeving heeft bereikt.

  • Status van diagnostische resource. U kunt controleren of de toepassing naar wens functioneert.

  • Beveiliging. U kunt omgevingen beveiligen door op te geven welke gebruikers en pijplijnen zich op een omgeving mogen richten.

Een omgeving is een groepering van resources waarbij de resources zelf de werkelijke implementatiedoelen vertegenwoordigen. Azure Pipelines-omgevingen ondersteunen momenteel de Kubernetes - en virtuele-machineresourcetypen .

Als een YAML-pijplijn verwijst naar een omgeving die niet bestaat:

  • Wanneer de gebruiker die de bewerking uitvoert bekend is en machtigingen kunnen worden toegewezen, maakt Azure Pipelines automatisch de omgeving.

  • Wanneer Azure Pipelines geen informatie heeft over de gebruiker die de bewerking uitvoert, bijvoorbeeld in een YAML-update vanuit een externe code-editor, mislukt de pijplijn.

Vereisten

Als u een omgeving wilt toevoegen, hebt u de volgende vereisten nodig:

Een omgeving maken

Uw eerste omgeving maken:

  1. Meld u aan bij uw Azure DevOps-organisatie en https://dev.azure.com/{yourorganization} open uw project.

  2. Selecteer Pipelines>Environments>Create environment.

    Schermopname van Omgevingen.

  3. Voer gegevens in voor de omgeving en selecteer Vervolgens Maken. U kunt later resources toevoegen aan een bestaande omgeving.

    Schermopname van het maken van een nieuwe omgeving.

Tip

U kunt een lege omgeving maken en ernaar verwijzen vanuit implementatietaken, zodat u de implementatiegeschiedenis kunt vastleggen op basis van de omgeving.

U kunt Azure Pipelines gebruiken om te implementeren in omgevingen. Zie Bouwen en implementeren in Azure Kubernetes Service met Azure Pipelines voor meer informatie.

Een omgeving targeten vanuit een implementatietaak

Een implementatietaak is een verzameling stappen die opeenvolgend worden uitgevoerd. U kunt een implementatietaak gebruiken om een volledige omgevingsgroep met resources te richten, zoals wordt weergegeven in het volgende YAML-fragment. De pijplijn wordt uitgevoerd op de myVM computer omdat die resourcenaam is opgegeven.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 
      name: 'smarthotel-dev'
      resourceName: myVM
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Een specifieke omgevingsresource toepassen op basis van een implementatietaak

U kunt het implementatiedoel instellen op een bepaalde resource in de omgeving, zodat u de implementatiegeschiedenis van de specifieke resource kunt vastleggen. De stappen van de implementatietaak nemen automatisch de serviceverbindingsdetails over van de resource die de implementatietaakdoelen heeft.

In het volgende voorbeeld wordt de waarde voor de kubernetesServiceConnection taak automatisch vanuit de invoer doorgegeven aan de environment.resource taak.

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)

Handmatige goedkeuringscontroles gebruiken

Azure Pipelines ondersteunt handmatige goedkeuringscontroles voor omgevingen om implementaties naar productieomgevingen te beheren. Goedkeuringscontroles zijn beschikbaar voor resource-eigenaren om te bepalen wanneer een fase in een pijplijn de resource verbruikt. Resource-eigenaren kunnen goedkeuringen en controles definiëren waaraan moet worden voldaan voordat een fase die die resource verbruikt, kan beginnen.

De rol Maker, Beheerder en Gebruiker van de omgeving, maar niet de rol Lezer, kan goedkeuringen en controles beheren. Als eigenaar van de omgeving kunt u handmatig bepalen wanneer een fase moet worden uitgevoerd met behulp van goedkeuringscontroles. Zie Goedkeuringen en controles definiëren voor meer informatie.

Omgevingen bekijken in uitvoeringsdetails

Op het tabblad Omgevingen van de details van de pijplijnuitvoering ziet u alle omgevingen waarop implementatietaken van een pijplijnuitvoering zijn gericht.

Schermopname van omgevingen in uitvoeringsdetails.

Notitie

Als u een privécluster van Azure Kubernetes Service (AKS) gebruikt, is het tabblad Omgevingen niet beschikbaar.

Implementatiegeschiedenis weergeven

U kunt het tabblad Implementaties selecteren in de sectie Azure Pipelines Environments om de implementatiegeschiedenis weer te geven.

  • Bekijk taken uit alle pijplijnen die zijn gericht op een specifieke omgeving. Twee microservices die elk hun eigen pijplijn hebben, kunnen bijvoorbeeld in dezelfde omgeving worden geïmplementeerd. De implementatiegeschiedenis helpt bij het identificeren van alle pijplijnen die van invloed zijn op de omgeving en helpt ook bij het visualiseren van de volgorde van implementaties per pijplijn.

    Schermopname van een overzicht van de implementatiegeschiedenis.

  • Als u wilt inzoomen op de taakdetails, selecteert u de tabbladen Wijzigingen en Werkitems op een implementatiepagina. Op de tabbladen worden lijsten met doorvoeringen en werkitems weergegeven die in de omgeving zijn geïmplementeerd. Elk lijstitem vertegenwoordigt nieuwe items in die implementatie.

    Op het tabblad Wijzigingen bevat de eerste vermelding alle doorvoeringen naar dat punt en bevatten de volgende vermeldingen alleen de wijzigingen voor die taak. Als meerdere doorvoeringen zijn gekoppeld aan dezelfde taak, zijn er meerdere resultaten op het tabblad Wijzigingen .

    Schermopname van doorvoeringen onder implementatiegeschiedenis.

  • Als meerdere werkitems aan dezelfde taak zijn gekoppeld, zijn er meerdere resultaten op het tabblad Werkitems .

    Schermopname van werkitems onder implementatiegeschiedenis.

Beveiliging

U kunt uw omgevingen beveiligen door gebruikersmachtigingen en pijplijnmachtigingen in te stellen.

Gebruikersmachtigingen

U kunt bepalen wie omgevingen met gebruikersmachtigingen kan maken, weergeven, gebruiken en beheren. Er zijn vier rollen: Maker met een bereik van alle omgevingen, Lezer, Gebruiker en Beheerder.

Als u een gebruiker wilt toevoegen met behulp van het deelvenster Gebruikersmachtigingen van een omgeving, gaat u naar de specifieke omgeving die u wilt autoriseren, selecteert u het pictogram Meer acties en selecteert u Beveiliging.

Selecteer in het deelvenster Gebruikersmachtigingen van de pagina Beveiliging de optie Toevoegen en selecteer vervolgens een gebruiker of groep en geschikte rol.

In het deelvenster Gebruikersmachtigingen kunt u ook de machtigingen instellen die worden overgenomen en de rollen voor uw omgeving overschrijven.

Rol Beschrijving
Maker Globale rol, beschikbaar via de optie voor beveiliging van omgevingen hubs. Leden van deze rol kunnen de omgeving in het project maken. Inzenders worden standaard toegevoegd als leden. Vereist om een YAML-pijplijn te activeren wanneer de omgeving nog niet bestaat.
Lezer Leden van deze rol kunnen de omgeving bekijken.
Gebruiker Leden van deze rol kunnen de omgeving gebruiken bij het maken of bewerken van YAML-pijplijnen.
Beheerder Leden van deze rol kunnen machtigingen beheren, omgevingen maken, beheren, weergeven en gebruiken. Voor een bepaalde omgeving wordt de maker standaard toegevoegd als Admininistrator. Beheerders kunnen ook toegang tot een omgeving openen voor alle pijplijnen.

Belangrijk

Wanneer u een omgeving maakt, heeft alleen de maker de beheerdersrol.

Rol Beschrijving
Maker Globale rol, beschikbaar via de optie voor beveiliging van omgevingen hubs. Leden van deze rol kunnen de omgeving in het project maken. Inzenders worden standaard toegevoegd als leden. Vereist om een YAML-pijplijn te activeren wanneer de omgeving nog niet bestaat.
Lezer Leden van deze rol kunnen de omgeving bekijken.
Gebruiker Leden van deze rol kunnen de omgeving gebruiken bij het maken of bewerken van YAML-pijplijnen.
Beheerder Naast het gebruik van de omgeving kunnen leden van deze rol het lidmaatschap van alle andere rollen voor de omgeving beheren. Makers worden standaard toegevoegd als leden.

Pijplijnmachtigingen

Gebruik het deelvenster Pijplijnmachtigingen van de pagina Beveiliging om alle of geselecteerde pijplijnen voor implementatie naar de omgeving te autoriseren.

  • Als u open toegang wilt verwijderen voor de omgeving of resource, selecteert u Machtiging beperken in pijplijnmachtigingen.

  • Wanneer machtigingen zijn beperkt, kunt u specifieke pijplijnen toestaan om te implementeren in de omgeving of op een specifieke resource. Selecteer + en kies uit de lijst met pijplijnen die u wilt toestaan.

Veelgestelde vragen

Waarom krijg ik een foutbericht wanneer ik een omgeving probeer te maken?

Als u het bericht 'Toegang geweigerd' ziet: {Gebruiker} heeft machtigingen nodig om de actie uit te voeren, gaat u naar Organisatie-instellingen>om te controleren of u de rol Belanghebbende hebt. De rol Belanghebbende kan geen omgevingen maken omdat belanghebbenden geen toegang hebben tot de opslagplaats.

Wijzig uw toegangsniveau en controleer vervolgens of u omgevingen kunt maken. Zie Veelgestelde vragen over gebruikers- en machtigingenbeheer voor meer informatie.

Waarom krijg ik een foutmelding dat een omgeving niet kan worden gevonden?

Als u het bericht Taak XXXX: Omgeving XXXX niet kunt vinden. De omgeving bestaat niet of is niet geautoriseerd voor gebruik. Er zijn verschillende mogelijke redenen voor de fout.

  • Runtimeparameters werken niet bij het maken van omgevingen, omdat de parameters alleen tijdens runtime worden uitgebreid. U kunt variabelen gebruiken om een omgeving te maken of templateContext gebruiken om eigenschappen door te geven aan sjablonen.

  • Azure Pipelines heeft mogelijk geen informatie over de gebruiker die de omgeving maakt.

    Wanneer u verwijst naar een omgeving die niet bestaat in een YAML-pijplijnbestand, maakt Azure Pipelines automatisch de omgeving in de volgende gevallen:

    • U gebruikt de wizard YAML-pijplijn maken in de webervaring van Azure Pipelines en verwijst naar een omgeving die nog niet is gemaakt.
    • U werkt het YAML-bestand bij met behulp van de Azure Pipelines-webeditor en slaat de pijplijn op nadat u de verwijzing naar de omgeving hebt toegevoegd.

    In de volgende gevallen beschikt Azure Pipelines niet over informatie over de gebruiker die de omgeving maakt, zodat de pijplijn mislukt.

    • U werkt het YAML-bestand bij met behulp van een andere externe code-editor.
    • U voegt een verwijzing toe naar een omgeving die niet bestaat en zorgt ervoor dat een handmatige of continue integratiepijplijn wordt geactiveerd.

    Voorheen hebben Azure Pipelines deze gevallen verwerkt door alle projectbijdragers toe te voegen aan de beheerdersrol van de omgeving. Elk lid van het project kan deze machtigingen vervolgens wijzigen en voorkomen dat anderen toegang krijgen tot de omgeving. Om dit resultaat te voorkomen, mislukt Azure Pipelines nu deze taken.