Vytvoření a cílení na prostředí

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

Prostředí je kolekce prostředků , na které můžete cílit s nasazeními z kanálu. Mezi typické příklady názvů prostředí patří vývoj, testování, kontrola kvality, příprava a produkce. Prostředí Azure DevOps představuje logický cíl, ve kterém váš kanál nasazuje software.

Prostředí Azure DevOps nejsou dostupná v klasických kanálech. Pro klasické kanály nabízejí skupiny nasazení podobné funkce.

Prostředí poskytují následující výhody.

Výhoda Popis
Historie nasazení Název kanálu a podrobnosti o spuštění se zaznamenávají pro nasazení do prostředí a jejích prostředků. V kontextu několika kanálů, které cílí na stejné prostředí nebo prostředek, je historie nasazení prostředí užitečná k identifikaci zdroje změn.
Sledovatelnost potvrzení a pracovních položek Zobrazte úlohy v rámci spuštění kanálu, které cílí na prostředí. Můžete také zobrazit potvrzení a pracovní položky , které byly nově nasazeny do prostředí. Sledovatelnost také umožňuje sledovat, jestli změna kódu (potvrzení) nebo oprava chyb (pracovní položky) dosáhla prostředí.
Stav diagnostických prostředků Ověřte, jestli aplikace funguje v požadovaném stavu.
Zabezpečení Zabezpečená prostředí zadáním toho, kteří uživatelé a kanály mají povoleno cílit na prostředí.

Zatímco prostředí je seskupení prostředků, samotné prostředky představují skutečné cíle nasazení. Prostředky Kubernetes a typy prostředků virtuálních počítačů se v současné době podporují.

Když vytvoříte kanál YAML a odkazujete na prostředí, které neexistuje, Azure Pipelines automaticky vytvoří prostředí, když je uživatel provádějící operaci známý a může být přiřazena oprávnění. Pokud Azure Pipelines nemá informace o uživateli, který vytváří prostředí (například aktualizace YAML z externího editoru kódu), kanál selže, pokud prostředí ještě neexistuje.

Požadavky

Vytvořit prostředí

  1. Přihlaste se ke své organizaci: https://dev.azure.com/{yourorganization} a vyberte svůj projekt.

  2. Vyberte prostředí>Pipelines>Create environment.

    Environments

  3. Zadejte informace pro prostředí a pak vyberte Vytvořit. Prostředky je možné přidat do existujícího prostředí později.

    Screenshot of creating a new environment.

Kanál použijte také k vytvoření a nasazení do prostředí. Další informace najdete v průvodci postupy.

Tip

Můžete vytvořit prázdné prostředí a odkazovat na něj z úloh nasazení. Díky tomu můžete zaznamenávat historii nasazení v prostředí.

Cílení na prostředí z úlohy nasazení

Úloha nasazení je kolekce kroků, které se mají spouštět postupně. Úlohu nasazení lze použít k cílení na celé prostředí (skupinu prostředků), jak je znázorněno v následujícím fragmentu kódu YAML. Kanál se spustí na počítači myVM, protože je zadaný název prostředku.

- 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

Cílení na konkrétní prostředek v rámci prostředí z úlohy nasazení

Cíl nasazení můžete vymezit na konkrétní prostředek v rámci prostředí. Pak můžete zaznamenat historii nasazení pro konkrétní prostředek v rámci prostředí. Kroky úlohy nasazení automaticky dědí podrobnosti o připojení služby z prostředku, na který cílí úloha nasazení.

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

Prostředí v podrobnostech o spuštění

Všechna prostředí, na která cílí úlohy nasazení konkrétního spuštění kanálu, najdete na kartě Prostředí podrobností o spuštění kanálu.

Environments in run details

Pokud používáte privátní cluster AKS, karta Prostředí není dostupná.

Schválení

Ruční řízení, kdy by se fáze měla spustit, pomocí kontrol schválení. Kontrola schválení slouží k řízení nasazení do produkčních prostředí. Kontroly jsou k dispozici pro vlastníka prostředku, aby mohli řídit, kdy fáze v kanálu využívá prostředek. Jako vlastník prostředku, jako je například prostředí, můžete definovat schválení a kontroly , které musí být splněny před zahájením fáze, kdy se daný prostředek spustí.

V prostředích podporujeme kontroly ručního schvalování. Další informace najdete v tématu Schválení.

Autor, Správa istrator a role uživatelů můžou spravovat schválení a kontroly. Role Čtenář nemůže spravovat schválení a kontroly.

Historie nasazení

Zobrazení historie nasazení v prostředích nabízí následující výhody.

  • Zobrazte úlohy ze všech kanálů, které cílí na konkrétní prostředí. Například dvě mikroslužby, z nichž každá má vlastní kanál, se nasazují do stejného prostředí. Výpis historie nasazení pomáhá identifikovat všechny kanály, které ovlivňují toto prostředí, a také pomáhá vizualizovat posloupnost nasazení jednotlivými kanály.

    Screenshot of deployment history listing.

  • Přejděte k podrobnostem úlohy a zobrazte seznam potvrzení a pracovních položek nasazených do prostředí. Seznam potvrzení a pracovních položek jsou nové položky mezi nasazeními. První výpis obsahuje všechna potvrzení a následující výpisy budou obsahovat jenom změny. Pokud je několik potvrzení svázaných se stejnou žádostí o přijetí změn, zobrazí se na kartách pracovních položek a změn více výsledků.

    Screenshot of commits under deployment history.

  • Pokud je několik pracovních položek svázaných se stejnou žádostí o přijetí změn, zobrazí se na kartě Pracovní položky více výsledků.

    Screenshot of work items under deployment history.

Zabezpečení

Uživatelská oprávnění

Určete, kdo může vytvářet, zobrazovat, používat a spravovat prostředí s uživatelskými oprávněními. Existují čtyři role – Tvůrce (obor: všechna prostředí), Čtenář, Uživatel a Správa istrator. Na panelu uživatelských oprávnění konkrétního prostředí můžete nastavit oprávnění zděděná a role pro každé prostředí můžete přepsat.

  1. Přejděte do konkrétního prostředí , které chcete autorizovat.
  2. Výběrem možnosti >Zabezpečení zobrazíte nastavení.
  3. Vyberte Uživatelská oprávnění>+ Přidat>uživatele nebo skupinu a pak vyberte vhodnou roli.
Role Popis
Tvůrce Globální role dostupná z možností zabezpečení centra prostředí Členové této role mohou vytvořit prostředí v projektu. Přispěvatelé se ve výchozím nastavení přidávají jako členové. Vyžaduje se k aktivaci kanálu YAML, pokud prostředí ještě neexistuje.
Čtenář Členové této role mohou zobrazit prostředí.
Uživatel Členové této role můžou prostředí používat při vytváření nebo úpravách kanálů YAML.
Správce Členové této role mohou spravovat oprávnění, vytvářet, spravovat, zobrazovat a používat prostředí. Pro konkrétní prostředí se jeho tvůrce ve výchozím nastavení přidá jako Správa inistrator. Správa istrátory můžou také otevřít přístup k prostředí pro všechny kanály.

Důležité

Při vytváření prostředí má roli správce jenom tvůrce.

Role Popis
Tvůrce Globální role dostupná z možností zabezpečení centra prostředí Členové této role mohou vytvořit prostředí v projektu. Přispěvatelé se ve výchozím nastavení přidávají jako členové. Vyžaduje se k aktivaci kanálu YAML, pokud prostředí ještě neexistuje.
Čtenář Členové této role mohou zobrazit prostředí.
Uživatel Členové této role můžou prostředí používat při vytváření nebo úpravách kanálů YAML.
Správce Kromě použití prostředí můžou členové této role spravovat členství všech ostatních rolí pro prostředí. Tvůrci se ve výchozím nastavení přidávají jako členové.

Oprávnění kanálu

Oprávnění kanálu použijte k autorizaci všech nebo vybraných kanálů pro nasazení do prostředí.

  • Pokud chcete odebrat přístup Otevřít v prostředí nebo prostředku, vyberte Omezit oprávnění v oprávněních kanálu.
  • Pokud chcete konkrétním kanálům povolit nasazení do prostředí nebo konkrétního prostředku, vyberte + a vyberte ze seznamu kanálů.

Další kroky

Definice schvalování a kontrol

Často kladené dotazy

Otázka: Proč se při pokusu o vytvoření prostředí zobrazí chybová zpráva?

A: Pokud se zobrazí zpráva "Přístup odepřen: {Uživatel} potřebuje k provedení akce oprávnění k vytvoření", zkontrolujte oprávnění na úrovni organizace. Přejděte do Nastavení organizace>Uživatelé a zkontrolujte, jestli máte roli účastníka. Role účastníka neumožňuje vytváření prostředí. Změňte úroveň přístupu a pak ověřte, jestli můžete vytvářet prostředí. Další informace najdete v tématu Nejčastější dotazy ke správě uživatelů a oprávnění.

Otázka: Proč se mi zobrazuje chyba Úloha XXXX: Prostředí XXXX nebylo nalezeno. Prostředí neexistuje nebo nemá autorizaci k použití.“?

A: Toto jsou některé z možných důvodů selhání:

  • Když vytvoříte kanál YAML a odkazujete na prostředí, které v souboru YAML neexistuje, Azure Pipelines v některých případech automaticky vytvoří prostředí:

    • Průvodce vytvořením kanálu YAML použijete ve webovém prostředí Azure Pipelines a odkazujete na prostředí, které ještě nebylo vytvořeno.
    • Soubor YAML aktualizujete pomocí webového editoru Azure Pipelines a po přidání odkazu na prostředí, které neexistuje, kanál uložíte.
  • V následujících tocích Azure Pipelines nemá informace o uživateli, který vytváří prostředí: aktualizujete soubor YAML pomocí jiného externího editoru kódu, přidáte odkaz na prostředí, které neexistuje, a pak způsobí aktivaci ručního nebo průběžného kanálu integrace. V tomto případě Azure Pipelines o uživateli neví. Dříve jsme tento případ řešili přidáním všech přispěvatelů projektu do role správce prostředí. Každý člen projektu pak mohl tato oprávnění změnit a zabránit ostatním v přístupu k prostředí.

  • Proměnné můžete použít k vytvoření prostředí nebo k předání vlastností šablonám pomocí templateContext. Parametry modulu runtime nebudou při vytváření prostředí fungovat, protože se rozbalí za běhu.

  • Uživatel s úrovní přístupu účastníků nemůže vytvořit prostředí, protože účastníci nemají přístup k úložišti.