Ć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.
Przed skonfigurowaniem przepływów pracy żądania ściągnięcia w firmie należy skonfigurować środowisko.
W tej lekcji upewnij się, że środowiska platformy Azure i usługi GitHub zostały skonfigurowane, aby umożliwić pomyślne ukończenie pozostałej części tego modułu.
Aby osiągnąć te cele, wykonasz następujące czynności:
- Skonfiguruj repozytorium GitHub dla tego modułu.
- Sklonuj repozytorium na komputer.
- Utwórz tożsamość obciążenia w identyfikatorze Entra firmy Microsoft.
- Utwórz wpis tajny w usłudze GitHub.
Pobieranie repozytorium GitHub
W tej sekcji skonfigurujesz 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ł już ukończony w ścieżce szkoleniowej, postępuj zgodnie z tymi instrukcjami, aby utworzyć nowe repozytorium i nadać mu nową nazwę.
Rozpoczynanie od repozytorium szablonów
Uruchom szablon, który konfiguruje repozytorium GitHub.
W witrynie usługi GitHub utwórz repozytorium na podstawie szablonu, wykonując następujące kroki:
Wybierz pozycję Użyj tego szablonu>Utwórz nowe repozytorium.
Zanotuj nazwę użytkownika lub organizację usługi GitHub. W tym przykładzie nazwa użytkownika usługi GitHub to mygithubuser. Ta nazwa będzie potrzebna wkrótce.
Wprowadź nazwę nowego projektu, na przykład toy-website-auto-review.
Wybierz opcję Publiczna.
Podczas tworzenia własnych repozytoriów warto utworzyć je jako prywatne. W tym module będziesz pracować z niektórymi funkcjami usługi GitHub, które działają tylko z repozytoriami publicznymi i kontami GitHub Enterprise.
Kliknij przycisk Create repository (Utwórz repozytorium).
Klonowanie repozytorium
Masz teraz kopię repozytorium szablonów na własnym koncie. Sklonuj to repozytorium lokalnie, aby rozpocząć pracę w nim.
Wybierz pozycję Kod, a następnie wybierz ikonę kopiowania.
Otwórz Visual Studio Code.
Otwórz okno terminalu programu Visual Studio Code, wybierając pozycję Terminal>Nowy terminal. Okno jest zwykle otwierane w dolnej części ekranu.
W terminalu przejdź do katalogu, w którym chcesz sklonować repozytorium GitHub na komputerze lokalnym. Aby na przykład sklonować repozytorium do folderu toy-website-auto-review , uruchom następujące polecenie:
cd toy-website-auto-review
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-auto-review.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-auto-review
Logowanie się do platformy Azure
Teraz, gdy repozytorium zostało sklonowane lokalnie na komputer, zalogujesz się do środowiska platformy Azure. Użyjesz konta platformy Azure do utworzenia tożsamości obciążenia dla przepływów pracy funkcji GitHub Actions do użycia.
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.
W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:
Connect-AzAccount
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure.
Tworzenie tożsamości obciążenia
W dalszej części tego modułu usługi Microsoft Learn przepływ pracy żądania ściągnięcia utworzy grupy zasobów i zasoby w ramach subskrypcji. Aby wdrożyć zasoby, musisz utworzyć tożsamość obciążenia i przyznać jej rolę Współautor w ramach subskrypcji.
Ostrzeżenie
Tożsamość obciążenia utworzona w tym miejscu ma wysoki poziom dostępu do subskrypcji platformy Azure. Aby uniknąć przypadkowych problemów, użyj subskrypcji nieprodukcyjnej. Nie wykonuj tych kroków w środowisku, które przechowuje jakiekolwiek obciążenia produkcyjne.
W własnych przepływach pracy weryfikacji żądań ściągnięcia zalecamy użycie dedykowanej subskrypcji platformy Azure.
Aby utworzyć tożsamości obciążeń, 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-auto-review'
Utwórz tożsamość obciążenia dla przepływu pracy wdrożeń.
applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-auto-review') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-auto-review\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:pull_request\",\"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-auto-review'
Utwórz tożsamość obciążenia dla przepływu pracy wdrożeń.
$applicationRegistration = New-AzADApplication -DisplayName 'toy-website-auto-review' New-AzADAppFederatedCredential ` -Name 'toy-website-auto-review' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):pull_request"
Udzielanie tożsamości obciążenia dostępu do subskrypcji
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:
az ad sp create --id $applicationRegistrationObjectId az role assignment create \ --assignee $applicationRegistrationAppId \ --role Contributor
Uruchom następujące polecenia programu Azure PowerShell w terminalu programu Visual Studio Code:
New-AzADServicePrincipal -AppId $applicationRegistration.AppId New-AzRoleAssignment ` -ApplicationId $applicationRegistration.AppId ` -RoleDefinitionName Contributor
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)"
Zanotuj wartość identyfikatora aplikacji dla AZURE_CLIENT_ID. Możesz użyć tej wartości podczas czyszczenia zasobów po zakończeniu pracy z tym modułem.
Tworzenie wpisów tajnych usługi GitHub
Utworzono tożsamość obciążenia i udzielono jej uprawnienia do wdrażania w subskrypcji. 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.