Ćwiczenie — konfigurowanie środowiska usługi Azure DevOps

Ukończone

W tej sekcji dowiesz się, jak skonfigurować organizację usługi Azure DevOps i utworzyć środowisko usługi aplikacja systemu Azure, w którym 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 aplikacja systemu Azure.
  • Tworzenie zmiennych 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 w tej ścieżce szkoleniowej są ze sobą powiązane. Zespół internetowy tailspin śledzi swoją podróż 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:

W witrynie Azure DevOps Demo Generator wykonaj następujące kroki, aby uruchomić szablon:

  1. Wybierz pozycję Zaloguj się i zaakceptuj warunki użytkowania.

  2. Na stronie Tworzenie nowego projektu wybierz organizację usługi Azure DevOps. Wprowadź nazwę projektu, taką jak Space Game — web — Docker.

    Screenshot of creating a project through Azure DevOps Demo Generator.

  3. Wybierz pozycję Tak. Chcę utworzyć rozwidlenie tego repozytorium>Autoryzuj. Jeśli zostanie wyświetlony monit, autoryzuj dostęp do konta usługi GitHub.

    Ważne

    Musisz wybrać tę opcję, aby szablon mógł połączyć się z repozytorium GitHub. Pamiętaj, aby zaznaczyć pole wyboru, nawet jeśli repozytorium Space Game zostało już rozwidlenia. Szablon będzie używać istniejącego rozwidlenia.

  4. Wybierz pozycję Utwórz projekt.

  5. Wybierz pozycję Przejdź do projektu , aby przejść do projektu w usłudze Azure DevOps.

Ważne

W tym module strona Czyszczenie środowiska usługi Azure DevOps zawiera ważne kroki oczyszczania. Czyszczenie pomaga oszczędzać bezpłatne minuty przeznaczone na kompilację. Pamiętaj, aby wykonać kroki oczyszczania, nawet jeśli nie ukończysz tego modułu.

Ustawianie widoczności projektu

Początkowo rozwidlenie repozytorium Space Game w usłudze GitHub jest ustawione na publiczne, podczas gdy projekt utworzony przez szablon usługi Azure DevOps jest ustawiony na 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:

Przenoszenie elementu roboczego do stanu Doing (Wykonywanie)

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

To przypisanie pracy zapewnia listę kontrolną do pracy. 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.

    Screenshot of Azure DevOps showing the location of the Boards menu.

  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.

    Screenshot of Azure Boards showing the location of the down arrow.

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

    Screenshot of Azure Boards showing the card in the Doing column.

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

Tworzenie środowiska usługi aplikacja systemu Azure

W module Tworzenie potoku wydania za pomocą usługi Azure Pipelines utworzono wystąpienie usługi App Service przy użyciu witryny Azure Portal. Chociaż portal jest doskonałym narzędziem do eksplorowania ofert platformy Azure, konfigurowanie składników, takich jak usługa App Service, może stać się kłopotliwe.

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żesz uzyskać z 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 witryny Azure Portal w usłudze Cloud Shell

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

  2. Wybierz usługę Cloud Shell na pasku menu, a następnie wybierz środowisko powłoki Bash .

    Screenshot of the Azure portal showing the location of the Cloud Shell menu item.

    Uwaga

    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 zostanie wyświetlony monit o utworzenie grupy zasobów, konta magazynu i udziału usługi 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 powłoki Bash

W tej sekcji utworzysz zmienne powłoki Bash, aby proces instalacji 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 powoduje wyświetlenie powłoki Bash w celu interpolowania zmiennych przy użyciu składni wbudowanej.

    webName="tailspin-space-game-web-${resourceSuffix}"
    registryName="tailspinspacegame${resourceSuffix}"
    
  3. Utwórz dwie kolejne zmienne powłoki 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

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 routingiem internetowym, a tylko Ty i Twój zespół mogą uzyskiwać dostęp. 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 jest uruchamiany w warstwie Podstawowa. Argument --is-linux określa użycie procesów roboczych 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 az webapp create polecenie, 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 az webapp list polecenie, aby wyświetlić nazwę hosta i stan 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 ona potrzebna później po zweryfikowaniu pracy. 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. Ta nazwa serwera będzie potrzebna podczas tworzenia zmiennych potoku później.

    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

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

Tworzenie zmiennych potoku w usłudze Azure Pipelines

W obszarze Tworzenie potoku wydania za pomocą usługi Azure Pipelines dodano zmienną do potoku, która przechowuje nazwę aplikacji internetowej w usłudze App Service. Zrobisz to samo tutaj. Ponadto dodasz nazwę usługi Azure Container Registry.

Te nazwy można zakodować w konfiguracji potoku, ale jeśli zdefiniujesz je jako zmienne, konfiguracja będzie bardziej wielokrotnego użytku. Ponadto jeśli nazwy wystąpień zmienią się, możesz zaktualizować zmienne i wyzwolić potok 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.

    Screenshot of Azure Pipelines showing the Library menu option.

  3. Wybierz pozycję + Grupa 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ź wartość WebAppName. Dla wartości wprowadź 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 jego nazwę hosta. W tym przykładzie należy wprowadzić ciąg 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.

  8. Wybierz pozycję Uprawnienia potoku, a następnie wybierz + znak, aby dodać potok. Wybierz pozycję mslearn-tailspin-spacegame-web-docker , aby udzielić potokowi uprawnień 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:

    Screenshot of Azure Pipeline showing the variable group. The group contains two variables.

Tworzenie wymaganych połączeń usługi

W tym miejscu utworzysz połączenie usługi, które umożliwia usłudze Azure Pipelines dostęp do subskrypcji platformy Azure. Usługa Azure Pipelines używa tego połączenia usługi do wdrożenia witryny internetowej w usłudze App Service. W poprzednim module utworzono podobne połączenie usługi. Utworzysz również połączenie usługi Docker Registry, aby opublikować kontener w usłudze 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 pozycję Połączenia z usługą.

  4. Wybierz pozycję Nowe 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 jednostka usługi (automatyczna). Następnie kliknij przycisk Dalej.

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

    Pole Wartość
    Poziom zakresu Subskrypcja
    Subskrypcja Subskrypcja platformy Azure
    Grupa zasobów tailspin-space-game-rg
    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 wybrano opcję 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. Wypełnij następujące pola:

    Pole Wartość
    Subskrypcja Subskrypcja platformy Azure
    Rejestr kontenerów platformy Azure Wybierz utworzony wcześniej
    Nazwa połączenia z usługą Połączenie ion usługi Container Registry
  12. Upewnij się, że wybrano opcję Udziel uprawnień dostępu do wszystkich potoków .

  13. Wybierz Zapisz, gdy skończysz.