Dela via


Skapa och rikta in dig på Azure DevOps-miljöer

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

Den här artikeln beskriver hur du skapar och riktar in dig på Azure Pipelines-miljöer. En miljö är en grupp med resurser som du kan rikta in dig på med distributioner från en pipeline.

En miljö representerar ett logiskt mål där din pipeline distribuerar programvara. Vanliga miljönamn är Dev, Test, QA, Staging och Production.

Kommentar

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

Miljöer ger följande fördelar:

  • Distributionshistorik. Namnet på pipelinen och detaljer om körningen registreras för distribution till en miljö och dess resurser. I samband med flera pipelines som riktar sig mot samma miljö eller resurs kan du använda distributionshistoriken för en miljö för att identifiera källan till ändringar.

  • Spårbarhet av ändringar och arbetsobjekt. Du kan visa jobb i en pipelinekörning som riktar sig mot en miljö. Du kan också visa kodändringar och arbetsobjekt som nyligen har distribuerats till miljön. Med spårningsbarhet kan du också spåra om en kodändringsincheckning eller en funktion/felkorrigering har nått en specifik miljö.

  • Diagnostiska resursers hälsa. Du kan kontrollera om programmet fungerar i önskat tillstånd.

  • Säkerhet. Du kan skydda miljöer genom att ange vilka användare och pipelines som ska kunna riktas mot en miljö.

En miljö är en gruppering av resurser där själva resurserna representerar faktiska distributionsmål. Azure Pipelines-miljöer stöder för närvarande resurstyperna Kubernetes och virtuella datorer .

Om en YAML-pipeline refererar till en miljö som inte finns:

  • När användaren som utför åtgärden är känd och behörigheter kan tilldelas skapar Azure Pipelines automatiskt miljön.

  • När Azure Pipelines inte har information om användaren som utför åtgärden, till exempel i en YAML-uppdatering från en extern kodredigerare, misslyckas pipelinen.

Förutsättningar

Kategori Kravspecifikation
Azure DevOps – Ett Azure DevOps-projekt.
– En möjlighet att köra pipelines på Microsoft-hanterade agenter. Du kan antingen köpa ett parallellt jobb eller begära en kostnadsfri nivå.
– Grundläggande kunskaper om YAML och Azure Pipelines. Mer information finns i Skapa din första pipeline.
- Behörigheter:
     Om du vill lägga till miljöer skapar du rollen Skapare för miljöer i projektet. Som standard kan medlemmar i grupperna Byggadministratörer, Versionsadministratörer och Projektadministratörer också skapa miljöer.
Blått En prenumeration för Azure.

Skapa en miljö

Så här skapar du din första miljö:

  1. Logga in på din Azure DevOps-organisation på https://dev.azure.com/{yourorganization} och öppna ditt projekt.

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

    Skärmklipp som visar miljöer.

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

    Skärmbild av att skapa en ny miljö.

Tips

Skapa en tom miljö och referera till den från distributionsjobb för att registrera distributionshistorik mot miljön.

Om du vill skapa och hantera miljöer programmatiskt använder du rest-API:et Azure DevOps Environments.

Du kan använda Azure Pipelines för att distribuera till miljöer. Mer information finns i Skapa och distribuera till Azure Kubernetes Service med Azure Pipelines.

Välj en miljö från ett distributionsjobb

Ett distributionsjobb innehåller steg som körs sekventiellt. Du kan använda ett distributionsjobb för att rikta in dig på en hel miljögrupp med resurser, enligt följande exempel 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 en specifik resurs i en miljö från ett utbyggnadsjobb

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

I följande exempel skickas värdet för kubernetesServiceConnection automatiskt ned till uppgiften från environment.resource indata.

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

Kommentar

Om du använder ett privat AKS-kluster kontrollerar du att du är ansluten till klustrets virtuella nätverk eftersom API-serverslutpunkten inte exponeras via en offentlig IP-adress.

Azure Pipelines rekommenderar att du konfigurerar en lokalt installerad agent i ett virtuellt nätverk som har åtkomst till klustrets virtuella nätverk. Mer information finns i Alternativ för att ansluta till det privata klustret .

Använda manuella godkännandekontroller

För att styra distributioner till produktionsmiljöer har Azure Pipelines stöd för manuella godkännandekontroller. Med de här kontrollerna kan resursägare styra när en fas i en pipeline använder resursen. Resursägare kan definiera godkännanden och kontroller som måste uppfyllas innan en fas som förbrukar resursen kan börja.

Miljörollerna Skapare, Administratör och Användare, men inte rollen Läsare, kan hantera godkännanden och kontroller. Som miljöägare kan du manuellt styra när en fas ska köras med hjälp av godkännandekontroller. Mer information finns i Definiera godkännanden och kontroller.

Se miljöerna i körningsinformation

Under fliken Miljöer i detaljerna för pipelinekörningen kan du se alla miljöer som berördes av distributionsjobb under en pipelinekörning.

Skärmbild som visar miljöerna i körningsinformation.

Kommentar

Om du använder ett privat Azure Kubernetes Service-kluster (AKS) är fliken Miljöer inte tillgänglig.

Visa distribueringshistorik

Du kan välja fliken Distributioner i avsnittet Azure Pipelines Environments för att visa distributionshistoriken.

  • Visa jobb från alla pipelines som är inriktade på en specifik miljö. Två mikrotjänster som var och en har en egen pipeline kan till exempel distribueras till samma miljö. Distributionshistoriken hjälper till att identifiera alla pipelines som påverkar miljön och hjälper även till att visualisera distributionssekvensen för varje pipeline.

    Skärmbild som visar distributionshistoriklistan.

  • Om du vill öka detaljnivån i jobbinformationen väljer du flikarna Ändringar och Arbetsobjekt på en distributionssida. Flikarna visar listor över commits och arbetsobjekt som har distribuerats till miljön. Varje listobjekt representerar nya objekt i distributionen.

    På fliken Ändringar innehåller den första listan alla åtaganden till den tidpunkten, och följande listor innehåller bara ändringarna för det arbetet. Om flera kommandon är knutna till samma uppgift finns det flera resultat på fliken Ändringar.

    Skärmbild av incheckningar under distributionshistorik.

  • Om flera arbetsobjekt är knutna till samma jobb finns det flera resultat på fliken Arbetsobjekt .

    Skärmbild av arbetsobjekt under distributionshistorik.

Säkerhet

Du kan skydda dina miljöer genom att ange användarbehörigheter och pipelinebehörigheter.

Användarbehörigheter

Du kan styra vem som kan skapa, visa, använda och hantera miljöer med användarbehörighet. Det finns fyra roller: Skapare med ett omfång för alla miljöer, läsare, användare och administratör.

Om du vill lägga till en användare med hjälp av en miljös användarbehörighetspanel går du till den specifika miljö som du vill auktorisera, väljer ikonen Fler åtgärder och väljer Säkerhet.

I panelen Användarbehörigheter på sidan Säkerhet väljer du Lägg till och sedan en användare eller grupp och lämplig roll.

I panelen Användarbehörigheter kan du också ange de behörigheter som ärvs och åsidosätta rollerna för din miljö.

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. Bidragsgivare läggs till som medlemmar som standardinställning. 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 se 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 administratör 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. Bidragsgivare läggs till som medlemmar som standardinställning. 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 se 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 denna roll hantera medlemskap i alla andra roller inom miljön. Skapare läggs till som medlemmar som standard.

Pipelinebehörigheter

Använd panelen Pipelinebehörighetersidan Säkerhet för att auktorisera alla eller valda pipelines för distribution till miljön.

  • Om du vill ta bort öppen åtkomst för miljön eller resursen väljer du Begränsa behörighet i Pipeline-behörigheter.

  • När behörigheterna är begränsade kan du tillåta att specifika pipelines distribueras till miljön eller till en specifik resurs. Välj + och välj sedan från listan över pipelines som ska tillåtas.

Vanliga frågor

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

Om du ser meddelandet Åtkomst nekad: {User} behöver skapa behörigheter för att utföra åtgärden, går du till Organisationsinställningar>Användare för att kontrollera om du har rollen Intressent. Intressentrollen kan inte skapa miljöer eftersom intressenter inte har åtkomst till arkivet.

Ä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.

Varför får jag ett felmeddelande om att en miljö inte kan hittas?

Om du ser meddelandet Jobb XXXX: Miljö XXXX kunde inte hittas. Miljön existerar inte eller har inte godkänts för användning., finns det flera möjliga orsaker till felet.

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

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

    • Du använder YAML-pipeline-skaparguiden i webbmiljön för Azure Pipelines och refererar till en miljö som ännu inte är skapad.
    • 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 miljön.

    I följande fall har Azure Pipelines inte information om användaren som skapar miljön, så pipelinen misslyckas:

    • Du uppdaterar YAML-filen med hjälp av en annan extern kodredigerare.
    • Du lägger till en referens till en miljö som inte finns och sedan utlöses en manuell eller kontinuerlig integrerad pipeline.

    Tidigare hanterade Azure pipelines 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. För att förhindra det här utfallet, stoppas nu dessa jobb av Azure Pipelines.