Create and target an environment (Tworzenie środowiska i wyznaczanie go jako miejsce docelowe)

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

Środowisko to kolekcja zasobów , których można kierować przy użyciu wdrożeń z potoku. Typowe przykłady nazw środowisk to Dev, Test, QA, Staging i Production. Środowisko usługi Azure DevOps reprezentuje logiczny element docelowy, w którym potok wdraża oprogramowanie.

Środowiska usługi Azure DevOps nie są dostępne w potokach klasycznych. W przypadku potoków klasycznych grupy wdrożeń oferują podobne funkcje.

Środowiska zapewniają następujące korzyści.

Korzyści opis
Historia wdrażania Nazwa potoku i szczegóły uruchomienia są rejestrowane dla wdrożeń w środowisku i jego zasobach. W kontekście wielu potoków przeznaczonych dla tego samego środowiska lub zasobu historia wdrażania środowiska jest przydatna do identyfikowania źródła zmian.
Możliwość śledzenia zatwierdzeń i elementów roboczych Wyświetl zadania w przebiegu potoku, które są przeznaczone dla środowiska. Możesz również wyświetlić zatwierdzenia i elementy robocze, które zostały nowo wdrożone w środowisku. Możliwość śledzenia umożliwia również śledzenie, czy zmiana kodu (zatwierdzenie) lub funkcja/poprawka błędu (elementy robocze) osiągnęła środowisko.
Kondycja zasobu diagnostycznego Sprawdź, czy aplikacja działa w żądanym stanie.
Bezpieczeństwo Zabezpieczanie środowisk przez określenie, którzy użytkownicy i potoki mogą być przeznaczone dla środowiska.

Chociaż środowisko jest grupowaniem zasobów, same zasoby reprezentują rzeczywiste cele wdrożenia. Typy zasobów i zasobów maszyny wirtualnej platformy Kubernetes są obecnie obsługiwane.

Podczas tworzenia potoku YAML i odwoływania się do środowiska, które nie istnieje, usługa Azure Pipelines automatycznie tworzy środowisko, gdy użytkownik wykonujący operację jest znany i można przypisać uprawnienia. Jeśli usługa Azure Pipelines nie zawiera informacji o użytkowniku tworzącym środowisko (na przykład: aktualizacja YAML z zewnętrznego edytora kodu), potok kończy się niepowodzeniem, jeśli środowisko jeszcze nie istnieje.

Wymagania wstępne

Utwórz środowisko

  1. Zaloguj się do organizacji: https://dev.azure.com/{yourorganization} i wybierz swój projekt.

  2. Wybierz pozycję Środowiska potoków>>Utwórz środowisko.

    Environments

  3. Wprowadź informacje dotyczące środowiska, a następnie wybierz pozycję Utwórz. Zasoby można dodać do istniejącego środowiska później.

    Screenshot of creating a new environment.

Użyj potoku, aby utworzyć i wdrożyć w środowiskach. Aby uzyskać więcej informacji, zobacz przewodnik z instrukcjami.

Napiwek

Możesz utworzyć puste środowisko i odwołać się do niego z zadań wdrażania. Dzięki temu można rejestrować historię wdrażania w środowisku.

Określanie docelowego środowiska z zadania wdrożenia

Zadanie wdrożenia to zbiór kroków, które mają być uruchamiane sekwencyjnie. Zadanie wdrożenia może służyć do kierowania całego środowiska (grupy zasobów), jak pokazano w poniższym fragmencie kodu YAML. Potok zostanie uruchomiony na maszynie myVM, ponieważ określono nazwę zasobu.

- 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

Określanie celu określonego zasobu w środowisku z zadania wdrożenia

Można określić zakres docelowy wdrożenia do określonego zasobu w środowisku. Następnie można rejestrować historię wdrażania dla określonego zasobu w środowisku. Kroki zadania wdrażania automatycznie dziedziczą szczegóły połączenia usługi z zasobu objętego zadaniem wdrożenia.

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

Środowisko w szczegółach przebiegu

Wszystkie środowiska, które są objęte zadaniami wdrażania określonego uruchomienia potoku, można znaleźć na karcie Środowiska szczegółów uruchomienia potoku.

Environments in run details

Jeśli używasz klastra prywatnego usługi AKS, karta Środowiska nie jest dostępna.

Zatwierdzenia

Ręczne kontrolowanie, kiedy etap powinien być uruchamiany przy użyciu kontroli zatwierdzenia. Użyj kontroli zatwierdzania, aby kontrolować wdrożenia w środowiskach produkcyjnych. Kontrole są dostępne dla właściciela zasobu, aby kontrolować, kiedy etap w potoku zużywa zasób. Jako właściciel zasobu, takiego jak środowisko, można zdefiniować zatwierdzenia i sprawdzenia , które muszą być spełnione przed rozpoczęciem etapu zużywania tego zasobu.

Obsługujemy ręczne kontrole zatwierdzeń w środowiskach. Aby uzyskać więcej informacji, zobacz Zatwierdzenia.

Role twórcy, Administracja istratora i użytkownika mogą zarządzać zatwierdzeniami i sprawdzaniem. Rola Czytelnik nie może zarządzać zatwierdzeniami i sprawdzaniem.

Historia wdrożenia

Widok historii wdrażania w środowiskach zapewnia następujące korzyści.

  • Wyświetl zadania ze wszystkich potoków przeznaczonych dla określonego środowiska. Na przykład dwie mikrousług, z których każdy ma własny potok, są wdrażane w tym samym środowisku. Lista historii wdrażania pomaga zidentyfikować wszystkie potoki, które mają wpływ na to środowisko, a także pomaga wizualizować sekwencję wdrożeń według każdego potoku.

    Screenshot of deployment history listing.

  • Przejdź do szczegółów zadania, aby wyświetlić listę zatwierdzeń i elementów roboczych wdrożonych w środowisku. Lista zatwierdzeń i elementów roboczych to nowe elementy między wdrożeniami. Pierwsza lista zawiera wszystkie zatwierdzenia, a poniższe listy będą zawierać tylko zmiany. Jeśli wiele zatwierdzeń jest powiązanych z tym samym żądaniem ściągnięcia, zobaczysz wiele wyników na kartach elementów roboczych i zmian.

    Screenshot of commits under deployment history.

  • Jeśli wiele elementów roboczych jest powiązanych z tym samym żądaniem ściągnięcia, na karcie Elementy robocze zostanie wyświetlonych wiele wyników.

    Screenshot of work items under deployment history.

Zabezpieczenia

Uprawnienia użytkownika

Kontroluj, kto może tworzyć, wyświetlać, używać i zarządzać środowiskami z uprawnieniami użytkownika. Istnieją cztery role — Twórca (zakres: wszystkie środowiska), Czytelnik, Użytkownik i Administracja istrator. W panelu uprawnień użytkownika określonego środowiska można ustawić uprawnienia dziedziczone i zastąpić role dla każdego środowiska.

  1. Przejdź do określonego środowiska , które chcesz autoryzować.
  2. Wybierz pozycję >Zabezpieczenia, aby wyświetlić ustawienia.
  3. Wybierz pozycję Uprawnienia> użytkownika+Dodaj>użytkownika lub grupę, a następnie wybierz odpowiednią rolę.
Rola opis
Twórca Rola globalna dostępna z opcji zabezpieczeń centrum środowisk. Członkowie tej roli mogą utworzyć środowisko w projekcie. Współautorzy są domyślnie dodawani jako członkowie. Wymagane do wyzwolenia potoku YAML, gdy środowisko jeszcze nie istnieje.
Czytelnik Członkowie tej roli mogą wyświetlać środowisko.
Użytkownik Członkowie tej roli mogą używać środowiska podczas tworzenia lub edytowania potoków YAML.
Administrator Członkowie tej roli mogą administrować uprawnieniami, tworzyć i wyświetlać środowiska oraz zarządzać nimi. W przypadku określonego środowiska jego twórca jest domyślnie dodawany jako Administracja inistrator. Administracja istratory mogą również otwierać dostęp do środowiska do wszystkich potoków.

Ważne

Podczas tworzenia środowiska tylko twórca ma rolę administratora.

Rola opis
Twórca Rola globalna dostępna z opcji zabezpieczeń centrum środowisk. Członkowie tej roli mogą utworzyć środowisko w projekcie. Współautorzy są domyślnie dodawani jako członkowie. Wymagane do wyzwolenia potoku YAML, gdy środowisko jeszcze nie istnieje.
Czytelnik Członkowie tej roli mogą wyświetlać środowisko.
Użytkownik Członkowie tej roli mogą używać środowiska podczas tworzenia lub edytowania potoków YAML.
Administrator Oprócz korzystania ze środowiska członkowie tej roli mogą zarządzać członkostwem wszystkich innych ról w środowisku. Twórcy są domyślnie dodawani jako członkowie.

Uprawnienia potoku

Użyj uprawnień potoku, aby autoryzować wszystkie lub wybrane potoki do wdrożenia w środowisku.

  • Aby usunąć otwarty dostęp w środowisku lub zasobie, wybierz pozycję Ogranicz uprawnienia w obszarze Uprawnienia potoku.
  • Aby zezwolić określonym potokom na wdrożenie w środowisku lub określonym zasobie, wybierz + i wybierz z listy potoków.

Następne kroki

Definiowanie zatwierdzeń i kontroli

Często zadawane pytania

Pyt.: Dlaczego podczas próby utworzenia środowiska pojawia się komunikat o błędzie?

1: Jeśli zostanie wyświetlony komunikat "Odmowa dostępu: {Użytkownik} potrzebuje uprawnień do tworzenia, aby wykonać akcję", sprawdź uprawnienia na poziomie organizacji. Przejdź do obszaru Ustawienia organizacji>Użytkownicy i sprawdź, czy masz rolę uczestnika projektu. Rola uczestnika projektu nie może tworzyć środowisk. Zmień swój poziom dostępu, a następnie sprawdź, czy możesz tworzyć środowiska. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące zarządzania użytkownikami i uprawnieniami.

Pyt.: Dlaczego występuje błąd "Nie można odnaleźć środowiska XXXX: środowisko XXXX. Środowisko nie istnieje lub nie zostało autoryzowane do użycia”?

1: Oto niektóre z możliwych przyczyn awarii:

  • Podczas tworzenia potoku YAML i odwoływania się do środowiska, które nie istnieje w pliku YAML, usługa Azure Pipelines automatycznie tworzy środowisko w niektórych przypadkach:

    • Używasz kreatora tworzenia potoku YAML w środowisku internetowym usługi Azure Pipelines i odwołujesz się do środowiska, które nie zostało jeszcze utworzone.
    • Aktualizujesz plik YAML w edytorze internetowym usługi Azure Pipelines i zapisujesz potok po dodaniu odwołania do nieistniejącego środowiska.
  • W następujących przepływach usługa Azure Pipelines nie ma informacji o użytkowniku tworzącym środowisko: zaktualizujesz plik YAML przy użyciu innego zewnętrznego edytora kodu, dodaj odwołanie do środowiska, które nie istnieje, a następnie spowoduje wyzwolenie potoku ręcznej lub ciągłej integracji. W takim przypadku usługa Azure Pipelines nie wie o użytkowniku. Wcześniej radziliśmy sobie z tym przypadkiem tak, że dodawaliśmy wszystkich współautorów projektu do roli administratora środowiska. Każdy członek projektu mógł wtedy zmieniać te uprawnienia i uniemożliwiać innym dostęp do środowiska.

  • Możesz użyć zmiennych , aby utworzyć środowisko lub użyć szablonuContext, aby przekazać właściwości do szablonów. Parametry środowiska uruchomieniowego nie będą działać podczas tworzenia środowiska, ponieważ są one rozszerzane w czasie wykonywania.

  • Użytkownik z poziomem dostępu uczestników projektu nie może utworzyć środowiska, ponieważ uczestnicy projektu nie mają dostępu do repozytorium.