Udostępnij za pośrednictwem


Wdrażanie na maszynach wirtualnych Azure przy użyciu grup wdrożeń w 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, należało otworzyć wymagane porty i zainstalować agentów wdrażania 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 wdrożeń.

Grupa wdrażania instaluje agenta wdrażania na każdym z serwerów docelowych w skonfigurowanej grupie i instruuje pipeline wdrożeniowy, aby aplikacja została stopniowo wdrożona 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 Environments.

Z tego samouczka dowiesz się więcej o następujących tematach:

  • 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żeniowej.

Wymagania wstępne

  • Konto platformy Microsoft Azure.
  • Organizacja usługi Azure DevOps.

Użyj Azure DevOps Demo Generator, aby utworzyć projekt ćwiczeniowy w organizacji Azure DevOps.

Konfigurowanie środowiska wdrażania platformy Azure

Następujące zasoby są udostępniane na platformie Azure przy użyciu szablonu ARM:

  • Sześć maszyn wirtualnych z serwerami sieci Web skonfigurowanymi z IIS
  • Maszyna wirtualna z programem SQL Server (serwer bazy danych)
  • Moduł równoważenia obciążenia sieci platformy Azure
  1. Kliknij link Wdróż na Azure poniżej, aby zainicjować uruchomienie zasobów. Podaj wszystkie niezbędne informacje i wybierz Zakup. Możesz użyć dowolnej kombinacji dozwolonych nazw użytkowników administracyjnych i haseł, ponieważ nie są one ponownie używane w tym samouczku. Prefiks nazwy środowiska jest dodawany do wszystkich nazw zasobów, aby zapewnić, że te zasoby mają globalnie unikalne nazwy. 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 konfliktów nazewnictwa, spróbuj zmienić parametr dla Nazwy 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 bazy danych z nazwą sqlSrv, aby wyświetlić jej szczegóły.

    Grupa zasobów wdrożona 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.

    wdrożenie 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. Kiedy dodajesz wydanie do kolejki, później używana jest ta kompilacja.

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

  2. Z obszaru Pipelines, przejdź do Grupy wdrożeń.

    przechodzenie do grup wdrożeń w obszarze Pipelines

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

  4. Wprowadź nazwę grupy wdrażania wersji i wybierz opcję 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 wdrożenia. 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. Z obszaru Pipelinesprzejdź do Releases. Wybierz potok wydania o nazwie Grupy wdrożeń i wybierz pozycję Edytuj.

  6. Wybierz kartę Tasks, aby wyświetlić zadania wdrażania w pipeline. Zadania są zorganizowane jako trzy etapy o nazwie Faza agenta, faza grupy wdrażania i faza wdrażania usług IIS.

  7. Wybierz fazę agenta . 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ę 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 usługi platformy Azure

  9. To zadanie zostanie uruchomione na maszynach wirtualnych hostowanych na platformie Azure i będzie musiało ponownie połączyć się z tym potokiem, aby spełnić wymagania grupy wdrożeniowej. 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.

    Nawigowanie do osobistych tokenów dostępu

  10. Na nowej zakładce 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łączenia usługi Azure Pipelines wybierz pozycję Nowy.

    Dodawanie połączenia usługi Azure Pipelines

  13. Wprowadź adres URL połączenia 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 token dostępu osobistego i określ nazwę połączenia z usługą . Wybierz pozycję Sprawdź i zapisz.

    Tworzenie połączenia usługi Azure Pipelines

    Uwaga

    Aby zarejestrować agenta, musisz być członkiem roli Administrator 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 Team i utworzoną wcześniej grupę wdrażania .

    Konfigurowanie grupy wdrażania usługi Azure Pipelines

  15. Wybierz fazę grupy wdrażania , etap. Ten etap wykonuje zadania na maszynach zdefiniowanych w grupie wdrażania. Ten etap jest połączony z tagiem SQL-Svr-DB. Z listy rozwijanej wybierz grupy wdrażania.

    Konfigurowanie fazy grupy wdrażania

  16. Wybierz fazę etap wdrażania 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. Z listy rozwijanej wybierz grupę wdrażania .

  17. Wybierz zadanie Rozłącz moduł równoważenia obciążenia sieciowego platformy Azure. Ponieważ maszyny docelowe są połączone z NLB, zadanie to odłączy maszyny od NLB przed wdrożeniem i ponownie je połączy 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 IIS Web App Manage. To zadanie jest uruchamiane na maszynach docelowych wdrożenia, które zostały zarejestrowane w grupie wdrażania i skonfigurowane dla tego zadania lub etapu. Tworzy aplikację internetową i pulę aplikacji lokalnie o nazwie PartsUnlimited uruchomionej na porcie 80

  19. Wybierz zadanie IIS Web App Deploy. Zadanie to jest uruchamiane na maszynach docelowych wdrożenia, które są zarejestrowane w grupie wdrożeniowej skonfigurowanej specjalnie dla tego zadania/etapu. Wdraża aplikację na serwerze usług IIS przy użyciu Web Deploy.

  20. Wybierz zadanie Connect Azure Network Load Balancer. 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, utwórz zmienne i podaj odpowiednie wartości, jak pokazano w poniższym przykładzie:

    Nazwa zmiennej Wartość zmiennej
    Nazwa bazy danych PartsUnlimited-Dev
    DBPassword xxxxxxxx
    DBUserName xxxxxxxx
    DefaultConnectionString Źródło danych=[YOUR_DNS_NAME]; Katalog początkowy=PartsUnlimited-Dev; Identyfikator użytkownika=xxxxxxxx; Hasło=xxxxxxxx; Wiele aktywnych zestawów wyników=False; Limit czasu połączenia=30;
    NazwaSerwera localhost

    Ważne

    Pamiętaj, aby zastąpić nazwę DNS serwera SQL (zanotowaną wcześniej w portalu Azure) w zmiennej DefaultConnectionString.

    Domyślny ciąg połączenia powinien wyglądać podobnie do poniższego po zastąpieniu serwera DNS SQL.

    Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=xxxxxxxx;Password=xxxxxxxx;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 sekret. 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 Utwórz wydanie i potwierdź. Śledź wydanie do momentu jego ukończenia. 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ć dowolne, które mają websrv w nazwie.

    lokalizowanie internetowej maszyny wirtualnej

  4. Skopiuj DNS z maszyny wirtualnej. usługi Azure Load Balancer będą rozdystrybuowywać ruch przychodzący między wystąpieniami serwerów będących w dobrej kondycji, zdefiniowanych w zestawie o zrównoważonym obciążeniu. W rezultacie DNS wszystkich wystąpień serwera internetowego jest taka sama.

    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żyłeś aplikację internetową na zestawie maszyn wirtualnych platformy Azure, korzystając z 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