Ćwiczenie — konfigurowanie środowiska usługi Azure DevOps

Ukończone

W tej sekcji nauczysz się, jak skonfigurować swoją organizację Azure DevOps i utworzyć środowisko Azure App Service, do którego będziesz wdrażać.

Dowiesz się, jak:

  • Konfigurowanie projektu usługi Azure DevOps.
  • Zarządzanie elementami roboczymi za pomocą usługi Azure Boards.
  • Utwórz środowisko usługi Azure App Service.
  • Utwórz zmienne potoku w usłudze Azure Pipelines.
  • Utwórz połączenie usługi do uwierzytelniania w ramach subskrypcji platformy Azure.

Dodawanie użytkownika do usługi Azure DevOps

Do ukończenia tego modułu potrzebna jest własna subskrypcja platformy Azure . Możesz bezpłatnie rozpocząć pracę z platformą Azure.

Nie potrzebujesz subskrypcji platformy Azure do pracy z usługą Azure DevOps, ale w tym module użyjesz usługi Azure DevOps do wdrożenia w zasobach platformy Azure. Aby uprościć ten proces, użyj tego samego konta Microsoft, aby zalogować się do platformy Azure i usługi Azure DevOps.

Jeśli używasz różnych kont Microsoft do logowania się do platformy Azure i usługi Azure DevOps, dodaj użytkownika z poziomem dostępu Podstawowe do organizacji DevOps w ramach konta Microsoft używanego do logowania się na platformie Azure. Aby uzyskać więcej informacji, zobacz Dodawanie użytkowników do organizacji lub projektu .

Następnie wyloguj się z usługi Azure DevOps i zaloguj się ponownie przy użyciu tego samego konta, które zostało użyte do zalogowania się do subskrypcji platformy Azure.

Pobieranie projektu usługi Azure DevOps

W tym miejscu upewnisz się, że organizacja usługi Azure DevOps została skonfigurowana w celu ukończenia pozostałej części tego modułu. W tym celu uruchomisz szablon, który tworzy projekt w usłudze Azure DevOps.

Moduły tego programu nauczania tworzą progresję. Śledzisz zespół internetowy Tailspin podczas ich podróży DevOps. Do celów szkoleniowych każdy moduł ma własny projekt usługi Azure DevOps.

Uruchamianie szablonu

Uruchom szablon, który konfiguruje organizację usługi Azure DevOps.

Ważne

Generator demonstracyjny usługi Azure DevOps nie jest już obsługiwany, ale nadal można go używać do tworzenia środowisk demonstracyjnych. Obecnie nie ma zastąpienia, a jego funkcje lub dostępność mogą ulec zmianie w przyszłości.

  1. Pobierz i uruchom projekt ADOGenerator w programie Visual Studio lub wybranym środowisku IDE.

  2. Po wyświetleniu monitu o wprowadzenie numeru szablonu z listy szablonów wprowadź 39 dla Automatyzowanie wdrożeń kontenerów Docker za pomocą Azure Pipelines, a następnie naciśnij Enter.

  3. Wybierz metodę uwierzytelniania. Możesz skonfigurować i użyć osobistego tokenu dostępu (PAT) lub zalogować się za pomocą urządzenia.

    Uwaga / Notatka

    W przypadku skonfigurowania Osobistego Tokenu Dostępu (PAT), upewnij się, że autoryzujesz niezbędne zakresy. W tym module możesz użyć pełnego dostępu, ale w rzeczywistej sytuacji należy upewnić się, że udzielasz tylko niezbędnych zakresów.

  4. Wprowadź nazwę organizacji usługi Azure DevOps, a następnie naciśnij Enter.

  5. Jeśli zostanie wyświetlony monit, wprowadź swój PAT usługi Azure DevOps, a następnie naciśnij Enter.

  6. Wprowadź nazwę projektu, taką jak Space Game — web — Docker, a następnie naciśnij Enter.

  7. Po utworzeniu projektu przejdź do organizacji usługi Azure DevOps w przeglądarce (pod adresem https://dev.azure.com/<your-organization-name>/) i wybierz projekt.

Rozwidlenie repozytorium

Jeśli jeszcze tego nie zrobiłeś/zrobiłaś, stwórz fork repozytorium mslearn-tailspin-spacegame-web-docker.

  1. W witrynie GitHub przejdź do repozytorium mslearn-tailspin-spacegame-web-docker .

  2. Wybierz Fork w prawym górnym rogu ekranu.

  3. Wybierz swoje konto GitHub jako właściciela, a następnie wybierz Utwórz fork.

Ważne

W tym module strona Czyszczenie środowiska usługi Azure DevOps zawiera ważne kroki oczyszczania. Sprzątanie pomaga upewnić się, że nie zabraknie ci bezpłatnych minut budowania. Pamiętaj, aby wykonać kroki oczyszczania, nawet jeśli nie ukończysz tego modułu.

Ustawianie widoczności projektu

Początkowo rozgałęzienie repozytorium Space Game w usłudze GitHub jest ustawione jako publiczne, podczas gdy projekt utworzony przez szablon usługi Azure DevOps jest ustawiony jako prywatny. Do repozytorium publicznego w usłudze GitHub można uzyskać dostęp dowolnej osobie, natomiast prywatne repozytorium jest dostępne tylko dla Ciebie i osób, którym chcesz je udostępnić. Podobnie w usłudze Azure DevOps publiczne projekty zapewniają dostęp tylko do odczytu użytkownikom nieuwierzytelnionemu, podczas gdy projekty prywatne wymagają od użytkowników udzielenia dostępu i uwierzytelnienia w celu uzyskania dostępu do usług.

W tej chwili nie jest konieczne zmodyfikowanie żadnego z tych ustawień na potrzeby tego modułu. Jednak w przypadku projektów osobistych musisz określić widoczność i dostęp, który chcesz udzielić innym osobom. Jeśli na przykład projekt jest projektem typu open source, możesz zdecydować się na upublicznienie zarówno repozytorium GitHub, jak i projektu usługi Azure DevOps. Jeśli projekt jest zastrzeżony, zazwyczaj zarówno repozytorium GitHub, jak i projekt usługi Azure DevOps są prywatne.

W dalszej części możesz znaleźć następujące zasoby pomocne podczas określania, która opcja jest najlepsza dla projektu:

Przenieś element roboczy do robienia

W tym miejscu w usłudze Azure Boards przypiszesz do siebie element roboczy. Przeniesiesz również element roboczy do stanu Wykonywanie . W praktyce Ty i Twój zespół utworzyliby elementy robocze na początku każdego sprintu lub iteracji roboczej.

To zadanie dostarcza listę kontrolną do wykorzystania. Daje to innym członkom zespołu wgląd w to, nad czym pracujesz, i ile pracy pozostało. Element roboczy pomaga również wymusić limity pracy w toku (WIP), dzięki czemu zespół nie wykonuje zbyt dużej ilości pracy jednocześnie.

W tym miejscu przeniesiesz pierwszy element Create container version of web site using Docker (Tworzenie wersji kontenera witryny internetowej przy użyciu platformy Docker) do kolumny Doing (Wykonywanie ), a następnie przypiszesz się do elementu roboczego.

Aby skonfigurować element roboczy:

  1. W usłudze Azure DevOps przejdź do obszaru Boards. Następnie wybierz pozycję Tablice z menu.

    Zrzut ekranu usługi Azure DevOps przedstawiający lokalizację menu Boards.

  2. W obszarze Tworzenie wersji kontenera witryny internetowej przy użyciu elementu roboczego platformy Docker wybierz strzałkę w dół w dolnej części karty, a następnie przypisz element roboczy do siebie.

    Zrzut ekranu usługi Azure Boards przedstawiający lokalizację strzałki w dół.

  3. Przenieś element roboczy z kolumny Do wykonania do kolumny Robi .

    Zrzut ekranu usługi Azure Boards przedstawiający kartę w kolumnie W toku.

Na końcu tego modułu przeniesiesz kartę do kolumny Gotowe po zakończeniu zadania.

Tworzenie środowiska usługi Azure App Service

W tym module użyjesz interfejsu wiersza polecenia platformy Azure, aby uruchomić zasoby niezbędne do wdrożenia i uruchomienia wystąpienia usługi App Service. Dostęp do interfejsu wiersza polecenia platformy Azure można uzyskać z poziomu terminalu lub za pośrednictwem programu Visual Studio Code.

Ważne

Aby wykonać ćwiczenia w tym module, musisz mieć własną subskrypcję platformy Azure.

Uruchamianie usługi Cloud Shell w witrynie Azure Portal

  1. Przejdź do witryny Azure Portal i zaloguj się.

  2. Wybierz Cloud Shell z paska menu, a następnie wybierz opcję Bash.

    Zrzut ekranu witryny Azure Portal przedstawiający lokalizację elementu menu usługi Cloud Shell.

    Uwaga / Notatka

    Usługa Cloud Shell wymaga, aby zasób magazynu platformy Azure utrwalał wszystkie pliki utworzone w usłudze Cloud Shell. Po pierwszym otwarciu usługi Cloud Shell zostaniesz poproszony o utworzenie grupy zasobów, konta magazynowego i udziału Azure Files. Ta konfiguracja jest automatycznie używana dla wszystkich przyszłych sesji usługi Cloud Shell.

Wybieranie regionu platformy Azure

Region to co najmniej jedno centrum danych platformy Azure znajdujące się w określonej lokalizacji geograficznej. Wschodnie stany USA, Zachodnie stany USA i Europa Północna to kilka przykładów regionów. Każdy zasób platformy Azure, taki jak wystąpienie usługi App Service, jest przydzielany do określonego regionu.

Aby uprościć proces uruchamiania poleceń, zacznij od wybrania domyślnego regionu. Po określeniu regionu domyślnego kolejne polecenia będą domyślnie używać tego regionu, chyba że zostanie jawnie określony inny region.

  1. Uruchom następujące polecenie, aby wyświetlić listę dostępnych regionów dla subskrypcji platformy Azure.

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Wybierz region znajdujący się w pobliżu lokalizacji z kolumny Nazwa w danych wyjściowych. Możesz na przykład wybrać eastasia lub westus2.

  3. Uruchom następujące polecenie, aby ustawić domyślny region. Zastąp symbol zastępczy nazwą wybranego regionu.

    az configure --defaults location=<REGION>
    

    W tym przykładzie parametr westus2 jest ustawiany jako region domyślny:

    az configure --defaults location=westus2
    

Tworzenie zmiennych Bash

W tej sekcji utworzysz zmienne powłoki Bash, aby proces konfiguracyjny był bardziej wygodny i mniej podatny na błędy. Używanie zmiennych dla udostępnionych ciągów tekstowych pomaga uniknąć przypadkowych literówek.

  1. W usłudze Cloud Shell wygeneruj liczbę losową. Ułatwi to tworzenie globalnie unikatowych nazw dla niektórych usług w następnym kroku.

    resourceSuffix=$RANDOM
    
  2. Utwórz globalnie unikatowe nazwy dla aplikacji internetowej usługi App Service i usługi Azure Container Registry. Użycie cudzysłowów w tych poleceniach skłania Bash do interpolowania zmiennych, korzystając ze składni w linii.

    webName="tailspin-space-game-web-${resourceSuffix}"
    registryName="tailspinspacegame${resourceSuffix}"
    
  3. Utwórz dwie kolejne zmienne Bash, aby przechowywać nazwy grupy zasobów i planu usługi App Service.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Tworzenie zasobów platformy Azure

Uwaga / Notatka

W celach szkoleniowych znajdziesz tutaj domyślne ustawienia sieciowe. Te ustawienia sprawiają, że witryna jest dostępna z Internetu. W praktyce można skonfigurować sieć wirtualną platformy Azure, która umieszcza witrynę internetową w sieci, która nie jest routowalna przez internet i która dostępna jest tylko dla Ciebie i Twojego zespołu. Później możesz ponownie skonfigurować sieć, aby udostępnić witrynę internetową użytkownikom.

  1. Uruchom następujące az group create polecenie, aby utworzyć grupę zasobów przy użyciu nazwy zdefiniowanej wcześniej.

    az group create --name $rgName
    
  2. Uruchom następujące az acr create polecenie, aby utworzyć usługę Azure Container Registry przy użyciu nazwy zdefiniowanej wcześniej.

    az acr create --name $registryName \
      --resource-group $rgName \
      --sku Standard \
      --admin-enabled true
    
  3. Uruchom następujące az appservice plan create polecenie, aby utworzyć plan usługi App Service przy użyciu nazwy zdefiniowanej wcześniej.

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    Argument --sku określa plan B1. Ten plan działa na warstwie Podstawowej. Argument --is-linux określa użycie pracowników systemu Linux.

    Ważne

    Jeśli jednostka SKU B1 nie jest dostępna w ramach subskrypcji platformy Azure, wybierz inny plan , taki jak S1 (Standardowa).

  4. Uruchom następujące polecenie az webapp create, aby utworzyć wystąpienie usługi App Service.

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --deployment-container-image-name $registryName.azurecr.io/web:latest
    
  5. Uruchom następujące polecenie az webapp list, aby wyświetlić listę nazwy hosta i stanu wystąpienia usługi App Service.

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Zanotuj nazwę hosta uruchomionej usługi. Będzie ci potrzebna później, gdy będziesz weryfikować swoją pracę. Oto przykład:

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  6. Uruchom następujące az acr list polecenie, aby wyświetlić listę serwerów logowania wystąpienia usługi Azure Container Registry. Nazwa tego serwera będzie potrzebna później, gdy będziesz tworzyć zmienne pipeline'u.

    az acr list \
      --resource-group $rgName \
      --query "[].{loginServer: loginServer}" \
      --output table
    

    Zanotuj serwer logowania. Będzie on potrzebny później podczas konfigurowania potoku. Oto przykład:

    LoginServer
    ---------------------------------
    tailspinspacegame4692.azurecr.io    
    

Ważne

Strona Czyszczenie środowiska usługi Azure DevOps w tym module zawiera ważne kroki oczyszczania. Czyszczenie pomaga zagwarantować, że po ukończeniu tego modułu nie są naliczane opłaty za zasoby platformy Azure. Pamiętaj, aby wykonać kroki oczyszczania, nawet jeśli nie ukończysz tego modułu.

Tworzenie zmiennych w potokach w usłudze Azure Pipelines

W tym miejscu dodasz zmienną do potoku, która przechowuje nazwę aplikacji internetowej w usłudze App Service. Ponadto dodasz nazwę usługi Azure Container Registry.

Nazwy te można na stałe osadzić w konfiguracji potoku, ale jeśli zdefiniujesz je jako zmienne, twoja konfiguracja będzie bardziej elastyczna. Ponadto, jeśli nazwy instancji zmienią się, możesz zaktualizować zmienne i wyzwolić pipeline bez modyfikowania konfiguracji.

Aby dodać zmienne:

  1. W usłudze Azure DevOps przejdź do projektu Space Game — web — Docker .

  2. W obszarze Potoki wybierz pozycję Biblioteka.

    Zrzut ekranu usługi Azure Pipelines przedstawiający opcję menu Biblioteka.

  3. Wybierz + Grupę zmiennych.

  4. W obszarze Właściwości wprowadź wartość Release jako nazwę grupy zmiennych.

  5. W obszarze Zmienne wybierz pozycję + Dodaj.

  6. Jako nazwę zmiennej wprowadź WebAppName. W polu wartości wpisz nazwę utworzonego powyżej wystąpienia usługi App Service, na przykład tailspin-space-game-web-4692.

    Ważne

    Ustaw nazwę wystąpienia usługi App Service, a nie jej nazwę hosta. W tym przykładzie należy wprowadzić tailspin-space-game-web-4692 a nie tailspin-space-game-web-4692.azurewebsites.net.

  7. Powtórz ten proces, aby dodać inną zmienną o nazwie RegistryName z wartością serwera logowania usługi Azure Container Registry, taką jak tailspinspacegame4692.azurecr.io. W górnej części strony wybierz pozycję Zapisz.

  8. Wybierz Uprawnienia potoku, a następnie wybierz ikonę +, aby dodać potok. Wybierz mslearn-tailspin-spacegame-web-docker, aby udzielić potokowi uprawnień do dostępu do grupy zmiennych.

  9. Wybierz pozycję Zapisz w górnej części strony, aby zapisać zmienne. Grupa zmiennych powinna wyglądać następująco:

    Zrzut ekranu usługi Azure Pipeline przedstawiający grupę zmiennych. Grupa zawiera dwie zmienne.

Tworzenie wymaganych połączeń usługi

Tutaj utworzysz połączenie usługi, które umożliwi Azure Pipelines dostęp do subskrypcji Azure. Usługa Azure Pipelines używa tego połączenia usługi do wdrożenia strony internetowej w ramach usługi App Service. W poprzednim module utworzono podobne połączenie usługi. Utworzysz również połączenie z rejestrem Docker, aby opublikować kontener w Azure Container Registry.

Ważne

Upewnij się, że zalogowaliśmy się zarówno do witryny Azure Portal, jak i usługi Azure DevOps na tym samym koncie Microsoft.

  1. W usłudze Azure DevOps przejdź do projektu Space Game — web — Docker .

  2. W dolnym rogu strony wybierz pozycję Ustawienia projektu.

  3. W obszarze Potoki wybierz Połączenia usług.

  4. Wybierz pozycję Utwórz połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.

  5. W górnej części strony rejestracja aplikacji (automatyczna).

  6. Wypełnij następujące pola:

    (No changes needed) Wartość
    Poziom zakresu Subskrypcja
    Subskrypcja Twoja subskrypcja platformy Azure
    Grupa zasobów tailspin-space-game-rg (gra kosmiczna Tailspin)
    Nazwa połączenia z usługą Resource Manager — Tailspin — gra kosmiczna

    Podczas tego procesu może zostać wyświetlony monit o zalogowanie się do konta Microsoft.

  7. Upewnij się, że jest zaznaczona opcja Udziel uprawnień dostępu do wszystkich potoków.

  8. Wybierz pozycję Zapisz.

    Usługa Azure DevOps wykonuje testowe połączenie, aby sprawdzić, czy może nawiązać połączenie z subskrypcją platformy Azure. Jeśli usługa Azure DevOps nie może nawiązać połączenia, możesz zalogować się po raz drugi.

  9. Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Rejestr platformy Docker, a następnie wybierz pozycję Dalej.

  10. W górnej części strony wybierz pozycję Azure Container Registry.

  11. W polu Typ uwierzytelniania wybierz pozycję Jednostka usługi.

  12. Wypełnij następujące pola:

    (No changes needed) Wartość
    Subskrypcja Twoja subskrypcja platformy Azure
    Rejestr kontenerów platformy Azure Wybierz utworzony wcześniej
    Nazwa połączenia z usługą Połączenie z rejestrem kontenerów
  13. Upewnij się, że jest zaznaczona opcja Udziel uprawnień dostępu do wszystkich potoków.

  14. Po zakończeniu wybierz pozycję Zapisz .