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 Azure DevOps-organisatie en -project.
- De rol Maker voor omgevingen in uw project.
Een omgeving maken
Uw eerste omgeving maken:
Meld u aan bij uw Azure DevOps-organisatie en
https://dev.azure.com/{yourorganization}
open uw project.Selecteer Pipelines>Environments>Create environment.
Voer gegevens in voor de omgeving en selecteer Vervolgens Maken. U kunt later resources toevoegen aan een bestaande 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)
Notitie
Als u een privé-AKS-cluster gebruikt, moet u ervoor zorgen dat u bent verbonden met het virtuele netwerk van het cluster, omdat het EINDPUNT van de API-server niet beschikbaar is via een openbaar IP-adres.
Azure Pipelines raadt u aan een zelf-hostende agent in te stellen binnen een VNET dat toegang heeft tot het virtuele netwerk van het cluster. Zie Opties voor het maken van verbinding met het privécluster voor meer informatie.
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.
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.
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 .
Als meerdere werkitems aan dezelfde taak zijn gekoppeld, zijn er meerdere resultaten op het tabblad Werkitems .
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 Beheerder. 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 naar 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-automatiseringsbestand, wordt de omgeving in de volgende gevallen automatisch door Azure Pipelines gemaakt:
- U gebruikt de wizard 'YAML-automatisering 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 een verwijzing hebt toegevoegd aan de omgeving.
In de volgende gevallen beschikt Azure Pipelines niet over informatie over de gebruiker die de omgeving maakt, waardoor 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 integratie-automatisering wordt geactiveerd.
Eerder heeft Azure Pipelines deze cases afgehandeld 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, laat Azure Pipelines deze taken nu mislukken.