Udostępnij za pośrednictwem


Deploy to Azure VMs using deployment groups in Azure Pipelines (Wdrażanie na maszynach wirtualnych platformy Azure przy użyciu grup wdrażania w usłudze Azure Pipelines)

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

We wcześniejszych wersjach usługi Azure Pipelines aplikacje, które musiały zostać wdrożone na wielu serwerach, wymagały znacznej ilości planowania i konserwacji. Komunikacja zdalna programu Windows PowerShell musiała być włączona ręcznie, wymagane porty otwarte i agentów wdrażania zainstalowanych na każdym z serwerów. Potoki musiały być następnie zarządzane ręcznie, jeśli wdrożenie wdrożenia było wymagane.

Wszystkie powyższe wyzwania zostały bezproblemowo rozwinięte wraz z wprowadzeniem grup wdrażania.

Grupa wdrażania instaluje agenta wdrażania na każdym z serwerów docelowych w skonfigurowanej grupie i instruuje potok wydania, aby stopniowo wdrażał aplikację na tych serwerach. Dla wdrożeń wdrażania można utworzyć wiele potoków, aby można było dostarczyć najnowszą wersję aplikacji w sposób etapowy do wielu grup użytkowników w celu weryfikacji nowo wprowadzonych funkcji.

Uwaga

Grupy wdrożeń to koncepcja używana w potokach klasycznych. Jeśli używasz potoków YAML, zobacz Środowiska.

Ten samouczek zawiera informacje dotyczące:

  • Aprowizowanie infrastruktury maszyn wirtualnych na platformie Azure przy użyciu szablonu
  • Tworzenie grupy wdrażania usługi Azure Pipelines
  • Tworzenie i uruchamianie potoku ciągłej integracji/ciągłego wdrażania w celu wdrożenia rozwiązania za pomocą grupy wdrożenia

Wymagania wstępne

  • Konto platformy Microsoft Azure.
  • Organizacja: Azure DevOps.

Użyj generatora demonstracyjnego usługi Azure DevOps, aby aprowizować projekt samouczka w organizacji usługi Azure DevOps.

Konfigurowanie środowiska wdrażania platformy Azure

Następujące zasoby są aprowizowane na platformie Azure przy użyciu szablonu usługi ARM:

  • Sześć serwerów sieci Web maszyn wirtualnych ze skonfigurowanymi usługami IIS
  • Maszyna wirtualna z programem SQL Server (serwer bazy danych)
  • Moduł równoważenia obciążenia sieci platformy Azure
  1. Kliknij link Wdróż na platformie Azure poniżej, aby zainicjować aprowizację zasobów. Podaj wszystkie niezbędne informacje i wybierz pozycję Kup. Możesz użyć dowolnej kombinacji dozwolonych nazw użytkowników administracyjnych i haseł, ponieważ nie są one ponownie używane w tym samouczku. Nazwa prefiksu env jest poprzedzona wszystkimi nazwami zasobów w celu zapewnienia, że te zasoby są generowane z globalnie unikatowymi nazwami. Spróbuj użyć czegoś osobistego lub losowego, ale jeśli podczas walidacji lub utworzenia wystąpi błąd konfliktu nazewnictwa, spróbuj zmienić ten parametr i uruchomić go ponownie.

    Wdróż na platformie Azure

    Zrzut ekranu przedstawiający sposób konfigurowania środowiska wdrażania platformy Azure.

    Uwaga

    Ukończenie wdrożenia trwa około 10–15 minut. Jeśli wystąpią jakiekolwiek błędy powodujące konflikt nazewnictwa, spróbuj zmienić parametr w polu Nazwa prefiksu env.

  2. Po zakończeniu wdrażania można przejrzeć wszystkie zasoby wygenerowane w określonej grupie zasobów przy użyciu witryny Azure Portal. Wybierz maszynę wirtualną serwera DB z programem sqlSrv w nazwie, aby wyświetlić jego szczegóły.

    Grupa zasobów jest wdrażana na platformie Azure.

  3. Zanotuj nazwę DNS. Ta wartość jest wymagana w późniejszym kroku. Możesz użyć przycisku kopiowania, aby skopiować go do schowka.

    Wdrażanie usługi SQL DNS na platformie Azure.

Tworzenie i konfigurowanie grupy wdrożenia

Usługa Azure Pipelines ułatwia organizowanie serwerów wymaganych do wdrażania aplikacji. Grupa wdrażania to kolekcja maszyn z agentami wdrażania. Każda z maszyn współdziała z usługą Azure Pipelines w celu koordynowania wdrażania aplikacji.

Ponieważ potok kompilacji nie wymaga zmiany konfiguracji, kompilacja jest wyzwalana automatycznie po aprowizacji projektu. Podczas kolejki wydania później używana jest ta kompilacja.

  1. Przejdź do projektu usługi Azure DevOps utworzonego przez generator pokazowy.

  2. W obszarze Potoki przejdź do pozycji Grupy wdrożeń.

    Przechodzenie do grup wdrożeń w obszarze Potoki

  3. Wybierz pozycję Dodaj grupę wdrożenia.

  4. Wprowadź nazwę grupy Wdrożenia wydania i wybierz pozycję Utwórz. Zostanie wygenerowany skrypt rejestracji. Serwery docelowe można zarejestrować przy użyciu podanego skryptu, jeśli pracujesz samodzielnie. Jednak w tym samouczku serwery docelowe są automatycznie rejestrowane w ramach potoku wydania. Definicja wydania używa etapów do wdrażania aplikacji na serwerach docelowych. Etap to logiczne grupowanie zadań definiujących cel środowiska uruchomieniowego, na którym będą wykonywane zadania. Każdy etap grupy wdrożenia wykonuje zadania na maszynach zdefiniowanych w grupie wdrażania.

  5. W obszarze Potoki przejdź do pozycji Wydania. Wybierz potok wydania o nazwie Grupy wdrożeń i wybierz pozycję Edytuj.

  6. Wybierz kartę Zadania, aby wyświetlić zadania wdrażania w potoku. Zadania są zorganizowane jako trzy etapy nazywane fazą agenta, fazą grupy wdrożenia i fazą wdrażania usług IIS.

  7. Wybierz fazę Agent. Na tym etapie serwery docelowe są skojarzone z grupą wdrażania przy użyciu zadania Wdrażanie grupy zasobów platformy Azure. Aby można było uruchomić, należy zdefiniować pulę agentów i specyfikację. Wybierz pulę usługi Azure Pipelines i najnowsząspecyfikację systemu Windows.

    Konfigurowanie fazy agenta

  8. Wybierz zadanie Wdrażanie grupy zasobów platformy Azure. Skonfiguruj połączenie usługi z subskrypcją platformy Azure używaną wcześniej do tworzenia infrastruktury. Po autoryzowaniu połączenia wybierz grupę zasobów utworzoną na potrzeby tego samouczka.

    Tworzenie połączenia z usługą platformy Azure

  9. To zadanie zostanie uruchomione na maszynach wirtualnych hostowanych na platformie Azure i będzie musiało nawiązać połączenie z powrotem z tym potokiem, aby spełnić wymagania grupy wdrożenia. Aby zabezpieczyć połączenie, będą potrzebować osobistego tokenu dostępu (PAT). Z listy rozwijanej Ustawienia użytkownika otwórz osobiste tokeny dostępu na nowej karcie. Większość przeglądarek obsługuje otwieranie linku na nowej karcie za pomocą menu kontekstowego prawym przyciskiem myszy lub Ctrl+Kliknij.

    Przechodzenie do osobistych tokenów dostępu

  10. Na nowej karcie wybierz pozycję Nowy token.

  11. Wprowadź nazwę i wybierz zakres Pełny dostęp . Wybierz pozycję Utwórz , aby utworzyć token. Po utworzeniu skopiuj token i zamknij kartę przeglądarki. Wróć do edytora usługi Azure Pipeline.

    Tworzenie osobistego tokenu dostępu

  12. W obszarze Połączenie usługi Azure Pipelines wybierz pozycję Nowy.

    Dodawanie połączenia usługi Azure Pipelines

  13. Wprowadź adres URL Połączenie ion do bieżącego wystąpienia usługi Azure DevOps. Ten adres URL jest podobny do https://dev.azure.com/[Your account]. Wklej utworzony wcześniej osobisty token dostępu i określ nazwę połączenia usługi. Wybierz pozycję Weryfikuj i zapisz.

    Tworzenie połączenia usługi Azure Pipelines

    Uwaga

    Aby zarejestrować agenta, musisz być członkiem roli Administracja istratora w puli agentów. Tożsamość administratora puli agentów jest wymagana tylko w momencie rejestracji. Tożsamość administratora nie jest utrwalana w agencie i nie jest używana w żadnej kolejnej komunikacji między agentem a usługą Azure Pipelines. Po zarejestrowaniu agenta nie trzeba odnawiać osobistego tokenu dostępu, ponieważ jest on wymagany tylko w momencie rejestracji.

  14. Wybierz bieżący projekt zespołowy i utworzoną wcześniej grupę Wdrożenia.

    Konfigurowanie grupy wdrażania usługi Azure Pipelines

  15. Wybierz etap fazy grupy wdrożenia. Ten etap wykonuje zadania na maszynach zdefiniowanych w grupie wdrażania. Ten etap jest połączony z tagiem SQL-Svr-DB . Wybierz grupę wdrożenia z listy rozwijanej.

    Konfigurowanie fazy grupy wdrażania

  16. Wybierz etap fazy wdrażania usług IIS. Ten etap umożliwia wdrożenie aplikacji na serwerach internetowych przy użyciu określonych zadań. Ten etap jest połączony z tagiem WebSrv . Wybierz grupę wdrożenia z listy rozwijanej.

  17. Wybierz zadanie Rozłącz usługę Azure Network Load Balancer . Ponieważ maszyny docelowe są połączone z równoważeniem obciążenia sieciowego, to zadanie spowoduje odłączenie maszyn od równoważenia obciążenia sieciowego przed wdrożeniem i ponowne połączenie ich z równoważeniem obciążenia sieciowego po wdrożeniu. Skonfiguruj zadanie tak, aby używało połączenia platformy Azure, grupy zasobów i modułu równoważenia obciążenia (powinno być tylko jedno).

  18. Wybierz zadanie Zarządzanie aplikacją internetową usług IIS. To zadanie jest uruchamiane na maszynach docelowych wdrożenia zarejestrowanych w grupie wdrażania skonfigurowanej dla zadania/etapu. Tworzy aplikację internetową i pulę aplikacji lokalnie o nazwie PartsUnlimited uruchomionej pod portem 80

  19. Wybierz zadanie Wdrażanie aplikacji internetowej usług IIS. To zadanie jest uruchamiane na maszynach docelowych wdrożenia zarejestrowanych w grupie wdrażania skonfigurowanej dla zadania/etapu. Wdraża aplikację na serwerze usług IIS przy użyciu narzędzia Web Deploy.

  20. Wybierz Połączenie zadanie modułu równoważenia obciążenia sieci platformy Azure. Skonfiguruj zadanie tak, aby używało połączenia platformy Azure, grupy zasobów i modułu równoważenia obciążenia (powinno być tylko jedno).

  21. Wybierz kartę Zmienne i wprowadź wartości zmiennych, jak pokazano poniżej.

    Nazwa zmiennej Wartość zmiennej
    DatabaseName CzęściUnlimited-Dev
    DBPassword P2ssw0rd@123
    DBUserName sqladmin
    Domyślna Połączenie ionString Źródło danych=[YOUR_DNS_NAME]; Katalog początkowy =PartsUnlimited-Dev; User ID=sqladmin; Password=P2ssw0rd@123; MultipleActiveResultSets=False; limit czasu Połączenie ion=30;
    ServerName localhost

    Ważne

    Pamiętaj, aby zastąpić nazwę DNS serwera SQL (zanotowaną wcześniej w witrynie Azure Portal) w zmiennej Default Połączenie ionString.

    Domyślna Połączenie ionString powinna być podobna do tego ciągu po zastąpieniu serwera DNS SQL:

    Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=sqladmin;Password=P2ssw0rd@123;MultipleActiveResultSets=False;Connection Timeout=30;

    Końcowa lista zmiennych powinna wyglądać mniej więcej tak:

    Konfigurowanie zmiennych potoku

    Uwaga

    Może zostać wyświetlony błąd, że zmienna DefaultConnectionString musi zostać zapisana jako wpis tajny. W takim przypadku wybierz zmienną i kliknij ikonę kłódki, która pojawi się obok jej wartości, aby ją chronić.

Kolejkowanie wydania i przeglądanie wdrożenia

  1. Wybierz pozycję Zapisz i potwierdź.

  2. Wybierz pozycję Utwórz wydanie i potwierdź. Postępuj zgodnie z instrukcjami wydania, aby je uzupełnić. Wdrożenie jest następnie gotowe do przeglądu.

  3. W witrynie Azure Portal otwórz jedną z internetowych maszyn wirtualnych w grupie zasobów. Możesz wybrać dowolny element o websrv nazwie.

    Lokalizowanie internetowej maszyny wirtualnej

  4. Skopiuj serwer DNS maszyny wirtualnej. Usługa Azure Load Balancer dystrybuuje ruch przychodzący między wystąpienia serwerów w dobrej kondycji zdefiniowane w zestawie o zrównoważonym obciążeniu. W związku z tym system DNS wszystkich wystąpień serwera internetowego jest taki sam.

    Lokalizowanie domeny aplikacji internetowej

  5. Otwórz nową kartę przeglądarki w systemie DNS maszyny wirtualnej. Upewnij się, że wdrożona aplikacja jest uruchomiona.

    Przeglądanie aplikacji

Podsumowanie

W tym samouczku wdrożono aplikację internetową w zestawie maszyn wirtualnych platformy Azure przy użyciu usługi Azure Pipelines i grup wdrażania. Chociaż w tym scenariuszu opisano kilka maszyn, można łatwo skalować proces w górę w celu obsługi setek, a nawet tysięcy maszyn przy użyciu praktycznie dowolnej konfiguracji.

Oczyszczanie zasobów

W tym samouczku utworzono projekt usługi Azure DevOps i niektóre zasoby na platformie Azure. Jeśli nie zamierzasz nadal korzystać z tych zasobów, usuń je, wykonując następujące czynności:

  1. Usuń projekt usługi Azure DevOps utworzony przez generator demonstracyjny usługi Azure DevOps.

  2. Wszystkie zasoby platformy Azure utworzone podczas tego samouczka zostały przypisane do grupy zasobów określonej podczas tworzenia. Usunięcie tej grupy spowoduje usunięcie zasobów, które zawierają. Usunięcie można wykonać za pośrednictwem interfejsu wiersza polecenia lub portalu.

Następne kroki

Provision agents for deployment groups (Aprowizowanie agentów dla grup wdrożenia)