Oefening: uw omgeving instellen
Belangrijk
U hebt uw eigen Azure-abonnement nodig om deze oefening te kunnen uitvoeren. Dit kan kosten met zich meebrengen. Als u nog geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Voordat u aan de websitewerkstroom van uw speelgoedbedrijf begint te werken, moet u uw omgeving configureren. In deze sectie zorgt u ervoor dat uw Azure- en GitHub-omgevingen zijn ingesteld om de rest van deze module te voltooien.
Als u aan deze doelstellingen wilt voldoen, voert u de volgende taken uit:
- Stel een GitHub-opslagplaats in voor deze module.
- Kloon de opslagplaats naar uw computer.
- Maak een resourcegroep in Azure.
- Maak een geheim in GitHub.
De GitHub-opslagplaats ophalen
Stel uw GitHub-opslagplaats in om de rest van deze module te voltooien door een nieuwe opslagplaats te maken op basis van een sjabloonopslagplaats. De sjabloonopslagplaats bevat de bestanden die u nodig hebt om aan de slag te gaan voor deze module.
De modules in dit leertraject maken deel uit van een voortgang. Voor leerdoeleinden heeft elke module een bijbehorende GitHub-sjabloonopslagplaats.
Tip
Zelfs als u de vorige module in het leertraject hebt voltooid, volgt u deze instructies om een nieuwe opslagplaats te maken en ervoor te zorgen dat u deze een nieuwe naam geeft.
Beginnen vanuit de sjabloonopslagplaats
Voer een sjabloon uit waarmee uw GitHub-opslagplaats wordt ingesteld.
Voer op de GitHub-site de volgende stappen uit om een opslagplaats te maken op basis van de sjabloon:
Selecteer Deze sjabloon>gebruiken. Maak een nieuwe opslagplaats.
Selecteer uw GitHub-gebruikersnaam in de vervolgkeuzelijst Eigenaar .
Voer een opslagplaatsnaam in voor uw nieuwe project, zoals speelgoedwebsite-test.
Selecteer de optie Openbaar .
Wanneer u uw eigen opslagplaatsen maakt, wilt u deze mogelijk privé maken. In deze module worden echter enkele functies van GitHub gebruikt die alleen werken met openbare opslagplaatsen en met GitHub Enterprise-accounts.
Klik op Opslagplaats maken.
Belangrijk
De laatste oefening in deze module bevat belangrijke opschoonstappen. Zorg ervoor dat u de opschoonstappen volgt, zelfs als u deze module niet voltooit.
De opslagplaats klonen
U hebt nu een kopie van de sjabloonopslagplaats in uw eigen account. Kloon deze opslagplaats lokaal, zodat u kunt beginnen met werken.
Selecteer Code en selecteer het kopieerpictogram.
Open Visual Studio Code.
Open een Visual Studio Code-terminalvenster door View> te selecteren. Het venster wordt meestal onderaan het scherm geopend.
Navigeer in de terminal naar de map waar u de GitHub-opslagplaats op uw lokale computer wilt klonen.
Typ
git clone
en plak de URL die u eerder hebt gekopieerd. Dit ziet er ongeveer als volgt uit:git clone https://github.com/mygithubuser/toy-website-test.git
Open Visual Studio Code opnieuw in de opslagplaatsmap door de volgende opdracht uit te voeren in de Visual Studio Code-terminal:
code -r toy-website-test
Aanmelden bij Azure
Als u wilt werken met resourcegroepen in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI-hulpprogramma's hebt geïnstalleerd.
Selecteer nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
De standaardshell is meestal pwsh, zoals wordt weergegeven aan de rechterkant van het terminalvenster.
Selecteer de vervolgkeuzelijst Profiel starten en selecteer vervolgens Azure Cloud Shell (Bash).
Er wordt een nieuwe shell geopend.
Aanmelden bij Azure met behulp van de Azure CLI
Voer in de Visual Studio Code-terminal de volgende opdracht uit om u aan te melden bij Azure:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend.
Als u wilt werken met resourcegroepen in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd.
Selecteer nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
De standaardshell is meestal pwsh, zoals wordt weergegeven aan de rechterkant van het terminalvenster.
Selecteer de vervolgkeuzelijst Profiel starten en selecteer vervolgens Azure Cloud Shell (PowerShell).
Er wordt een nieuwe shell geopend.
Aanmelden bij Azure met behulp van Azure PowerShell
Voer in de Visual Studio Code-terminal de volgende opdracht uit om u aan te melden bij Azure:
Connect-AzAccount
Meld u aan bij uw Azure-account in de browser die wordt geopend.
Een workloadidentiteit maken
Maak vervolgens een workload-id in Microsoft Entra-id voor uw implementatiewerkstroom.
De Azure CLI-opdrachten gebruiken jq
om gegevens uit JSON-uitvoer te parseren om de workloadidentiteit te maken. Als u deze niet hebt jq
geïnstalleerd, kunt u Bash in Azure Cloud Shell gebruiken om de workloadidentiteit, resourcegroep en roltoewijzing te maken en de GitHub-geheimen voor te bereiden.
Voer de volgende code uit om variabelen te definiëren voor uw GitHub-gebruikersnaam en de naam van uw opslagplaats. Zorg ervoor dat u vervangt door
<myGithubUser>
uw GitHub-gebruikersnaam, die u eerder in deze oefening hebt genoteerd. Zorg er ook voor dat u de juiste Naam van de GitHub-opslagplaats opgeeft.githubOrganizationName='<myGithubUser>' githubRepositoryName='toy-website-test'
Maak een workloadidentiteit voor uw implementatiewerkstroom. U maakt twee federatieve referenties om u verderop in deze module voor te bereiden op een oefening.
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\"]}"
Voer de volgende code uit om variabelen te definiëren voor uw GitHub-gebruikersnaam en de naam van uw opslagplaats. Zorg ervoor dat u vervangt door
<myGithubUser>
uw GitHub-gebruikersnaam, die u eerder in deze oefening hebt genoteerd. Zorg er ook voor dat u de juiste Naam van de GitHub-opslagplaats opgeeft.$githubOrganizationName = '<myGithubUser>' $githubRepositoryName = 'toy-website-test'
Maak een workloadidentiteit voor uw implementatiewerkstroom. U maakt twee federatieve referenties om u verderop in deze module voor te bereiden op een oefening.
$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"
Een resourcegroep maken in Azure en de identiteitstoegang van de workload verlenen
Maak vervolgens een resourcegroep voor uw website. Dit proces verleent ook de workloadidentiteit de rol Inzender voor de resourcegroep, waarmee uw werkstroom kan worden geïmplementeerd in de resourcegroep.
Voer de volgende Azure CLI-opdrachten uit in de Visual Studio Code-terminal:
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
Voer de volgende Azure PowerShell-opdrachten uit in de Visual Studio Code-terminal:
$resourceGroup = New-AzResourceGroup -Name ToyWebsiteTest -Location westus3
New-AzADServicePrincipal -AppId $($applicationRegistration.AppId)
New-AzRoleAssignment `
-ApplicationId $($applicationRegistration.AppId) `
-RoleDefinitionName Contributor `
-Scope $($resourceGroup.ResourceId)
GitHub-geheimen voorbereiden
Voer de volgende code uit om de waarden weer te geven die u als GitHub-geheimen moet maken:
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)"
GitHub-geheimen maken
U hebt een workloadidentiteit en een resourcegroep gemaakt waarop deze kan worden geïmplementeerd. Maak vervolgens geheimen in GitHub Actions.
Navigeer in uw browser naar uw GitHub-opslagplaats.
Selecteer >>en variabelenacties.
Selecteer Nieuw opslagplaatsgeheim.
Geef het geheim een naam AZURE_CLIENT_ID.
Plak in het veld Waarde de GUID vanaf de eerste regel van de terminaluitvoer. Neem geen
AZURE_CLIENT_ID
spaties op, de dubbele punt of spaties in de waarde.Selecteer Geheim toevoegen.
Herhaal het proces om de geheimen voor AZURE_TENANT_ID en AZURE_SUBSCRIPTION_ID te maken en kopieer de waarden uit de bijbehorende velden in de terminaluitvoer.
Controleer of in uw lijst met geheimen nu alle drie de geheimen worden weergegeven.