Ćwiczenie — konfigurowanie środowiska
Ważne
Do wykonania tego ćwiczenia potrzebna jest własna subskrypcja platformy Azure. Ponadto mogą zostać naliczone opłaty. Jeśli nie masz jeszcze subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Zanim zaczniesz pracować nad przepływem pracy witryny sieci Web firmowej toy, musisz skonfigurować środowisko. W tej sekcji upewnij się, że środowiska platformy Azure i usługi GitHub zostały skonfigurowane w celu ukończenia pozostałej części tego modułu.
Aby spełnić te cele, wykonaj następujące zadania:
- Skonfiguruj repozytorium GitHub dla tego modułu.
- Sklonuj repozytorium na komputer.
- Utwórz grupę zasobów na platformie Azure.
- Utwórz wpis tajny w usłudze GitHub.
Pobieranie repozytorium GitHub
Skonfiguruj repozytorium GitHub, aby ukończyć resztę tego modułu, tworząc nowe repozytorium na podstawie repozytorium szablonów. Repozytorium szablonów zawiera pliki potrzebne do rozpoczęcia pracy z tym modułem.
Moduły w tej ścieżce szkoleniowej są częścią postępu. Do celów szkoleniowych każdy moduł ma skojarzone repozytorium szablonów usługi GitHub.
Napiwek
Nawet jeśli poprzedni moduł został ukończony w ścieżce szkoleniowej, postępuj zgodnie z tymi instrukcjami, aby utworzyć nowe repozytorium i upewnić się, że nadasz mu nową nazwę.
Rozpoczynanie od repozytorium szablonów
Uruchom szablon, który konfiguruje repozytorium GitHub.
W witrynie usługi GitHub wykonaj następujące kroki, aby utworzyć repozytorium na podstawie szablonu:
Wybierz pozycję Użyj tego szablonu>Utwórz nowe repozytorium.
Wybierz swoją nazwę użytkownika usługi GitHub z listy rozwijanej Właściciel .
Wprowadź nazwę repozytorium dla nowego projektu, na przykład toy-website-test.
Wybierz opcję Publiczna.
Podczas tworzenia własnych repozytoriów warto utworzyć je jako prywatne. Jednak w tym module są używane niektóre funkcje usługi GitHub, które działają tylko z repozytoriami publicznymi i kontami GitHub Enterprise.
Kliknij przycisk Create repository (Utwórz repozytorium).
Ważne
Ostatnie ćwiczenie w tym module zawiera ważne kroki oczyszczania. Pamiętaj, aby wykonać kroki oczyszczania, nawet jeśli nie ukończysz tego modułu.
Klonowanie repozytorium
Masz teraz kopię repozytorium szablonów na własnym koncie. Sklonuj to repozytorium lokalnie, aby można było rozpocząć pracę w nim.
Wybierz pozycję Kod i wybierz ikonę kopiowania.
Otwórz Visual Studio Code.
Otwórz okno terminalu programu Visual Studio Code, wybierając pozycję Wyświetl>terminal. Okno jest zwykle otwierane w dolnej części ekranu.
Przejdź do terminalu do katalogu, w którym chcesz sklonować repozytorium GitHub na komputerze lokalnym.
Wpisz
git clone
i wklej skopiowany wcześniej adres URL, który wygląda następująco:git clone https://github.com/mygithubuser/toy-website-test.git
Otwórz ponownie program Visual Studio Code w folderze repozytorium, uruchamiając następujące polecenie w terminalu programu Visual Studio Code:
code -r toy-website-test
Logowanie się do platformy Azure
Aby pracować z grupami zasobów na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano narzędzia interfejsu wiersza polecenia platformy Azure.
W menu Terminal wybierz pozycję Nowy terminal. Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Domyślna powłoka to zazwyczaj pwsh, jak pokazano po prawej stronie okna terminalu.
Wybierz listę rozwijaną Uruchom profil, a następnie wybierz pozycję Azure Cloud Shell (Bash).
Zostanie otwarta nowa powłoka.
Logowanie się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
W terminalu programu Visual Studio Code uruchom następujące polecenie, aby zalogować się na platformie Azure:
az login
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.
Aby pracować z grupami zasobów na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano program Azure PowerShell.
W menu Terminal wybierz pozycję Nowy terminal. Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Domyślna powłoka to zazwyczaj pwsh, jak pokazano po prawej stronie okna terminalu.
Wybierz listę rozwijaną Uruchom profil, a następnie wybierz pozycję Azure Cloud Shell (PowerShell).
Zostanie otwarta nowa powłoka.
Logowanie się na platformie Azure przy użyciu programu Azure PowerShell
W terminalu programu Visual Studio Code uruchom następujące polecenie, aby zalogować się na platformie Azure:
Connect-AzAccount
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.
Tworzenie tożsamości obciążenia
Następnie utwórz tożsamość obciążenia w identyfikatorze Entra firmy Microsoft dla przepływu pracy wdrażania.
Aby utworzyć tożsamość obciążenia, polecenia interfejsu wiersza polecenia platformy Azure służą jq
do analizowania danych z danych wyjściowych JSON. Jeśli nie jq
zainstalowano programu , możesz użyć powłoki Bash w usłudze Azure Cloud Shell , aby utworzyć tożsamość obciążenia, grupę zasobów i przypisanie roli oraz przygotować wpisy tajne usługi GitHub.
Uruchom następujący kod, aby zdefiniować zmienne dla nazwy użytkownika usługi GitHub i nazwy repozytorium. Upewnij się, że zastąp
<myGithubUser>
ciąg nazwą użytkownika usługi GitHub zanotowaną wcześniej w tym ćwiczeniu. Upewnij się również, że określono poprawną nazwę repozytorium GitHub.githubOrganizationName='<myGithubUser>' githubRepositoryName='toy-website-test'
Utwórz tożsamość obciążenia dla przepływu pracy wdrożeń. W dalszej części tego modułu utworzysz dwa federacyjne poświadczenia, aby przygotować się do ćwiczenia.
applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-test') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-test\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:environment:Website\",\"audiences\":[\"api://AzureADTokenExchange\"]}" az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-test-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Uruchom następujący kod, aby zdefiniować zmienne dla nazwy użytkownika usługi GitHub i nazwy repozytorium. Upewnij się, że zastąp
<myGithubUser>
ciąg nazwą użytkownika usługi GitHub zanotowaną wcześniej w tym ćwiczeniu. Upewnij się również, że określono poprawną nazwę repozytorium GitHub.$githubOrganizationName = '<myGithubUser>' $githubRepositoryName = 'toy-website-test'
Utwórz tożsamość obciążenia dla przepływu pracy wdrożeń. W dalszej części tego modułu utworzysz dwa federacyjne poświadczenia, aby przygotować się do ćwiczenia.
$applicationRegistration = New-AzADApplication -DisplayName 'toy-website-test' New-AzADAppFederatedCredential ` -Name 'toy-website-test' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):environment:Website" New-AzADAppFederatedCredential ` -Name 'toy-website-test-branch' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Tworzenie grupy zasobów na platformie Azure i udzielanie dostępu tożsamości obciążenia
Następnie utwórz grupę zasobów dla witryny internetowej. Ten proces przyznaje również tożsamość obciążenia rolę Współautor w grupie zasobów, która umożliwia wdrożenie przepływu pracy w grupie zasobów.
Uruchom następujące polecenia interfejsu wiersza polecenia platformy Azure w terminalu programu Visual Studio Code:
resourceGroupResourceId=$(az group create --name ToyWebsiteTest --location westus3 --query id --output tsv)
az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
--assignee $applicationRegistrationAppId \
--role Contributor \
--scope $resourceGroupResourceId
Uruchom następujące polecenia programu Azure PowerShell w terminalu programu Visual Studio Code:
$resourceGroup = New-AzResourceGroup -Name ToyWebsiteTest -Location westus3
New-AzADServicePrincipal -AppId $($applicationRegistration.AppId)
New-AzRoleAssignment `
-ApplicationId $($applicationRegistration.AppId) `
-RoleDefinitionName Contributor `
-Scope $($resourceGroup.ResourceId)
Przygotowywanie wpisów tajnych usługi GitHub
Uruchom następujący kod, aby wyświetlić wartości, które należy utworzyć jako wpisy tajne usługi GitHub:
echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
Tworzenie wpisów tajnych usługi GitHub
Utworzono tożsamość obciążenia i grupę zasobów, w której można ją wdrożyć. Następnie utwórz wpisy tajne w funkcji GitHub Actions.
W przeglądarce przejdź do repozytorium GitHub.
Wybierz pozycję Ustawienia>Wpisy tajne i zmienne>Akcje.
Wybierz pozycję Nowy wpis tajny repozytorium.
Nadaj nazwę AZURE_CLIENT_ID wpisu tajnego.
W polu Wartość wklej identyfikator GUID z pierwszego wiersza danych wyjściowych terminalu. Nie dołączaj
AZURE_CLIENT_ID
, dwukropka ani żadnych spacji w wartości.Wybierz przycisk Add secret (Dodaj wpis tajny).
Powtórz ten proces, aby utworzyć wpisy tajne dla AZURE_TENANT_ID i AZURE_SUBSCRIPTION_ID, kopiując wartości z odpowiednich pól w danych wyjściowych terminalu.
Sprawdź, czy lista wpisów tajnych zawiera teraz wszystkie trzy wpisy tajne.