Ćwiczenie — konfigurowanie środowiska usługi Azure DevOps
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:
Wybierz pozycję Zaloguj się i zaakceptuj warunki użytkowania.
Na stronie Tworzenie nowego projektu wybierz organizację usługi Azure DevOps. Wprowadź nazwę projektu, taką jak Space Game — web — Docker.
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.
Wybierz pozycję Utwórz projekt.
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:
- Korzystanie z projektów prywatnych i publicznych
- Szybki start: publiczne ustawianie prywatnego projektu
- Setting repository visibility (Ustawianie widoczności repozytorium)
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:
W usłudze Azure DevOps przejdź do obszaru Boards. Następnie wybierz pozycję Tablice z menu.
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.
Przenieś element roboczy z kolumny Do wykonania do kolumny Robi .
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
Przejdź do witryny Azure Portal i zaloguj się.
Wybierz usługę Cloud Shell na pasku menu, a następnie wybierz środowisko powłoki Bash .
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.
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
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.
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.
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
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}"
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.
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
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
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).
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
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
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:
W usłudze Azure DevOps przejdź do projektu Space Game — web — Docker .
W obszarze Potoki wybierz pozycję Biblioteka.
Wybierz pozycję + Grupa zmiennych.
W obszarze Właściwości wprowadź wartość Release jako nazwę grupy zmiennych.
W obszarze Zmienne wybierz pozycję + Dodaj.
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.
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.
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.Wybierz pozycję Zapisz w górnej części strony, aby zapisać zmienne. Grupa zmiennych powinna wyglądać następująco:
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.
W usłudze Azure DevOps przejdź do projektu Space Game — web — Docker .
W dolnym rogu strony wybierz pozycję Ustawienia projektu.
W obszarze Potoki wybierz pozycję Połączenia z usługą.
Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.
W górnej części strony jednostka usługi (automatyczna). Następnie kliknij przycisk Dalej.
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.
Upewnij się, że wybrano opcję Udziel uprawnień dostępu do wszystkich potoków .
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.
Wybierz pozycję Nowe połączenie z usługą, a następnie wybierz pozycję Rejestr platformy Docker, a następnie wybierz pozycję Dalej.
W górnej części strony wybierz pozycję Azure Container Registry.
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 Upewnij się, że wybrano opcję Udziel uprawnień dostępu do wszystkich potoków .
Wybierz Zapisz, gdy skończysz.