Omgevingen maken en gericht instellen
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 middelen waarop u implementaties vanuit een pijplijn kunt uitvoeren.
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 commits en werkitems U kunt taken in de pijplijnuitvoering bekijken die zijn gericht op een omgeving. U kunt ook de commits en werkitems bekijken die recent 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.
Gezondheid van diagnostische bron. 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 Ontwerper voor omgevingen in uw project.
Een omgeving maken
Uw eerste omgeving maken:
Meld u aan bij uw Azure DevOps-organisatie op
https://dev.azure.com/{yourorganization}
en open uw project.Selecteer Pipelines>Environments>Omgeving maken.
Voer gegevens in voor de omgeving en selecteer 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.
Als u programmatisch omgevingen wilt maken en beheren, gebruikt u de REST API van Azure DevOps Environments.
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 deploymentjob gebruiken die een gehele omgevingsgroep van resources doelt, zoals te zien is in het volgende YAML-fragment. De pijplijn draait op de myVM
machine 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
Richt op een specifieke resource voor de omgeving vanuit 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 implementatiejob nemen automatisch de details van de serviceverbinding over van de resource waarop de implementatietaak zich richt.
In het volgende voorbeeld wordt de waarde voor de kubernetesServiceConnection
automatisch doorgegeven aan de taak vanuit de invoer van de environment.resource
.
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 eigenaren van middelen om te bepalen wanneer een fase in een pijplijn de resource gebruikt. Resource-eigenaren kunnen goedkeuringen en controles definiëren waaraan moet worden voldaan voordat een fase die die resource verbruikt, kan beginnen.
De rollen Maker, Beheerder en Gebruiker van de omgeving, maar niet de rol Lezer, kunnen 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 commits 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 commits tot dat moment, en bevatten de volgende vermeldingen alleen de wijzigingen voor die opdracht. Als meerdere commits aan dezelfde taak zijn gekoppeld, 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 beveiligingsoptie van het omgevingencentrum. 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 beveiligingsoptie van de omgevingshub. 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.
Om open toegang tot de omgeving of resource in te trekken, 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-pijplijn maken' in de webinterface van Azure Pipelines en verwijst naar een omgeving die nog niet is aangemaakt.
- 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.