Skapa och målinrikta en miljö

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

En miljö är en samling resurser som du kan rikta in dig på med distributioner från en pipeline. Vanliga exempel på miljönamn är Dev, Test, QA, Staging och Production. En Azure DevOps-miljö representerar ett logiskt mål där din pipeline distribuerar programvara.

Azure DevOps-miljöer är inte tillgängliga i klassiska pipelines. För klassiska pipelines erbjuder distributionsgrupper liknande funktioner.

Miljöer ger följande fördelar.

Förmån beskrivning
Distributionshistorik Pipelinenamn och körningsinformation registreras för distributioner till en miljö och dess resurser. I samband med flera pipelines som riktar sig mot samma miljö eller resurs är distributionshistoriken för en miljö användbar för att identifiera källan till ändringar.
Spårning av incheckningar och arbetsobjekt Visa jobb i pipelinekörningen som är mål för en miljö. Du kan också visa incheckningar och arbetsobjekt som nyligen har distribuerats till miljön. Med spårningsbarhet kan man också spåra om en kodändring (incheckning) eller funktion/felkorrigering (arbetsobjekt) har nått en miljö.
Diagnostikresurshälsa Kontrollera om programmet fungerar i önskat tillstånd.
Säkerhet Skydda miljöer genom att ange vilka användare och pipelines som ska kunna riktas mot en miljö.

Även om en miljö är en gruppering av resurser representerar själva resurserna faktiska distributionsmål. Kubernetes-resursen och resurstyperna för virtuella datorer stöds för närvarande.

När du skapar en YAML-pipeline och refererar till en miljö som inte finns skapar Azure Pipelines automatiskt miljön när användaren som utför åtgärden är känd och behörigheter kan tilldelas. När Azure Pipelines inte har information om användaren som skapar miljön (till exempel en YAML-uppdatering från en extern kodredigerare) misslyckas pipelinen om miljön inte redan finns.

Förutsättningar

Skapa en miljö

  1. Logga in på din organisation: https://dev.azure.com/{yourorganization} och välj ditt projekt.

  2. Välj Pipelines-miljöer>>Skapa miljö.

    Environments

  3. Ange information för miljön och välj sedan Skapa. Resurser kan läggas till i en befintlig miljö senare.

    Screenshot of creating a new environment.

Använd en pipeline för att skapa och distribuera till miljöer också. Mer information finns i guiden instruktioner.

Dricks

Du kan skapa en tom miljö och referera till den från distributionsjobb. På så sätt kan du registrera distributionshistoriken mot miljön.

Rikta en miljö från ett distributionsjobb

Ett distributionsjobb är en samling steg som ska köras sekventiellt. Ett distributionsjobb kan användas för att rikta in sig på en hel miljö (grupp med resurser) enligt följande YAML-kodfragment. Pipelinen körs på myVM-datorn eftersom resursnamnet har angetts.

- 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

Rikta in sig på en specifik resurs i en miljö från distributionsjobbet

Du kan begränsa distributionsmålet till en viss resurs i miljön. Sedan kan du registrera distributionshistorik för en specifik resurs i miljön. Stegen i distributionsjobbet ärver automatiskt tjänstanslutningsinformationen från den resurs som distributionsjobbet riktar in sig på.

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)
         # value for kubernetesServiceConnection input automatically passed down to task by environment.resource input

Miljö i körningsinformation

Alla miljöer som blir mål för distributionsjobb för en specifik körning av en pipeline finns på fliken Miljöer med information om pipelinekörning.

Environments in run details

Om du använder ett privat AKS-kluster är fliken Miljöer inte tillgänglig.

Godkännanden

Styr manuellt när en fas ska köras med hjälp av godkännandekontroller. Använd godkännandekontroller för att styra distributioner till produktionsmiljöer. Kontroller är tillgängliga för resursägaren att styra när en fas i en pipeline förbrukar en resurs. Som ägare till en resurs, till exempel en miljö, kan du definiera godkännanden och kontroller som måste uppfyllas innan en fas som förbrukar resursen startar.

Vi stöder manuella godkännandekontroller av miljöer. Mer information finns i Godkännanden.

Rollerna Skapare, Administratör och Användare kan hantera godkännanden och kontroller. Rollen Läsare kan inte hantera godkännanden och kontroller.

Distributionshistorik

Distributionshistorikvyn i miljöer ger följande fördelar.

  • Visa jobb från alla pipelines som är inriktade på en specifik miljö. Till exempel distribueras två mikrotjänster, var och en har en egen pipeline, till samma miljö. Listan över distributionshistorik hjälper dig att identifiera alla pipelines som påverkar den här miljön och hjälper även till att visualisera distributionssekvensen för varje pipeline.

    Screenshot of deployment history listing.

  • Öka detaljnivån i jobbinformationen för att se listan över incheckningar och arbetsobjekt som har distribuerats till miljön. Listan över incheckningar och arbetsobjekt är de nya objekten mellan distributionerna. Din första lista innehåller alla incheckningar och följande listor innehåller bara ändringar. Om flera incheckningar är knutna till samma pull-begäran visas flera resultat på arbetsobjekten och på flikarna för ändringar.

    Screenshot of commits under deployment history.

  • Om flera arbetsobjekt är knutna till samma pull-begäran visas flera resultat på fliken Arbetsobjekt.

    Screenshot of work items under deployment history.

Säkerhet

Användarbehörigheter

Kontrollera vem som kan skapa, visa, använda och hantera miljöer med användarbehörighet. Det finns fyra roller – Skapare (omfång: alla miljöer), Läsare, Användare och Administratör. I den specifika miljöns användarbehörighetspanel kan du ange de behörigheter som ärvs och du kan åsidosätta rollerna för varje miljö.

  1. Gå till den specifika miljö som du vill auktorisera.
  2. Välj >Säkerhet för att visa inställningarna.
  3. Välj Användarbehörigheter>+Lägg till>användare eller grupp och välj sedan en lämplig roll.
Roll beskrivning
Skapare Global roll, tillgänglig från miljöhubbens säkerhetsalternativ. Medlemmar i den här rollen kan skapa miljön i projektet. Deltagare läggs till som medlemmar som standard. Krävs för att utlösa en YAML-pipeline när miljön inte redan finns.
Läsare Medlemmar i den här rollen kan visa miljön.
Användare Medlemmar i den här rollen kan använda miljön när de skapar eller redigerar YAML-pipelines.
Administratör Medlemmar i den här rollen kan administrera behörigheter, skapa, hantera, visa och använda miljöer. För en viss miljö läggs dess skapare till som Admininistrator som standard. Administratörer kan också öppna åtkomsten till en miljö för alla pipelines.

Viktigt!

När du skapar en miljö är det bara skaparen som har administratörsrollen.

Roll beskrivning
Skapare Global roll, tillgänglig från miljöhubbens säkerhetsalternativ. Medlemmar i den här rollen kan skapa miljön i projektet. Deltagare läggs till som medlemmar som standard. Krävs för att utlösa en YAML-pipeline när miljön inte redan finns.
Läsare Medlemmar i den här rollen kan visa miljön.
Användare Medlemmar i den här rollen kan använda miljön när de skapar eller redigerar YAML-pipelines.
Administratör Förutom att använda miljön kan medlemmar i den här rollen hantera medlemskap i alla andra roller för miljön. Skapare läggs till som medlemmar som standard.

Pipeline-behörigheter

Använd pipelinebehörigheter för att auktorisera alla eller valda pipelines för distribution till miljön.

  • Om du vill ta bort Öppna åtkomst i miljön eller resursen väljer du Begränsa behörighet i Pipeline-behörigheter.
  • Om du vill tillåta att specifika pipelines distribueras till en miljö eller en specifik resurs väljer du + och väljer från listan över pipelines.

Nästa steg

Definiera godkännanden och kontroller

Vanliga frågor

F: Varför får jag ett felmeddelande när jag försöker skapa en miljö?

S: Om du ser meddelandet "Åtkomst nekad: {User} behöver Skapa behörigheter för att utföra åtgärden" kontrollerar du behörigheterna på organisationsnivå. Gå till Organisationsinställningar>Användare och kontrollera om du har rollen som intressent. Intressentrollen kan inte skapa miljöer. Ändra åtkomstnivån och kontrollera sedan om du kan skapa miljöer. Mer information finns i Vanliga frågor och svar om hantering av användare och behörigheter.

F: Varför visas felet "Jobb XXXX: Miljö XXXX kunde inte hittas. Miljön finns inte eller har inte auktoriserats för användning”?

S: Det här är några av de möjliga orsakerna till felet:

  • När du skapar en YAML-pipeline och refererar till en miljö som inte finns i YAML-filen skapar Azure Pipelines automatiskt miljön i vissa fall:

    • Du använder guiden skapa YAML-pipeline i Azure Pipelines-webbmiljön och refererar till en miljö som inte har skapats ännu.
    • Du uppdaterar YAML-filen med hjälp av webbredigeraren för Azure Pipelines och sparar pipelinen när du har lagt till en referens till en miljö som inte finns.
  • I följande flöden har Azure Pipelines inte information om användaren som skapar miljön: du uppdaterar YAML-filen med en annan extern kodredigerare, lägger till en referens till en miljö som inte finns och sedan utlöser en manuell eller kontinuerlig integreringspipeline. I det här fallet känner Inte Azure Pipelines till användaren. Tidigare hanterade vi det här ärendet genom att lägga till alla projektdeltagare i miljöns administratörsroll. Alla medlemmar i projektet kunde sedan ändra dessa behörigheter och hindra andra från att komma åt miljön.

  • Du kan använda variabler för att skapa miljön eller använda templateContext för att skicka egenskaper till mallar. Körningsparametrar fungerar inte när du skapar miljön eftersom de expanderas vid körning.

  • En användare med intressentåtkomstnivå kan inte skapa miljön eftersom intressenter inte har åtkomst till lagringsplatsen.