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 begint met het publiceren van de herbruikbare Bicep-code van uw speelgoedbedrijf, 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, gaat u als volgt te werk:
- 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
Hier maakt u een nieuwe GitHub-opslagplaats 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:
Meld u aan bij GitHub.
Selecteer Deze sjabloon>gebruiken. Maak een nieuwe opslagplaats.
Selecteer voor Eigenaar uw GitHub-account.
Voer een opslagplaatsnaam in voor uw nieuwe project, zoals herbruikbaar speelgoed.
Selecteer de optie Openbaar .
Wanneer u uw eigen opslagplaatsen maakt, wilt u deze mogelijk privé maken. In deze module gebruikt u functies van GitHub die alleen werken in combinatie met openbare opslagplaatsen en 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
Nu u een kopie van de sjabloonopslagplaats in uw eigen account hebt, kloont u deze opslagplaats lokaal, zodat u eraan kunt gaan werken.
Selecteer Code en selecteer vervolgens het pictogram Url naar klembord kopiëren.
Open Visual Studio Code.
Open een Visual Studio Code-terminalvenster door Terminal>New Terminal te selecteren. Het venster wordt meestal onderaan het scherm geopend.
Ga in de terminal naar de map waarin u de GitHub-opslagplaats op uw lokale computer wilt klonen. Als u bijvoorbeeld de opslagplaats in de map opslagplaatsen wilt klonen, voert u de volgende opdracht uit:
cd repositories
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-reusable.git
Open Visual Studio Code opnieuw in de opslagplaatsmap door de volgende opdracht uit te voeren in de Visual Studio Code-terminal:
code --reuse-window toy-reusable
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 en de Azure-accountextensie voor Visual Studio Code 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 en de Azure-accountextensie voor Visual Studio Code 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 -UseDeviceAuthentication
Volg de opdrachtinstructies om u aan te melden bij uw Azure-account.
Een workloadidentiteit maken
Maak vervolgens een workload-id in Microsoft Entra-id voor uw implementatiewerkstroom.
Als u de workloadidentiteiten wilt maken, worden de Azure CLI-opdrachten gebruikt jq
om gegevens uit JSON-uitvoer te parseren. 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 voor de GitHub-opslagplaats opgeeft.githubOrganizationName='mygithubuser' githubRepositoryName='toy-reusable'
Maak een workloadidentiteit voor uw implementatiewerkstroom.
applicationRegistrationDetails=$(az ad app create --display-name 'toy-reusable') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-reusable-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 voor de GitHub-opslagplaats opgeeft.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-reusable'
Maak een workloadidentiteit voor uw implementatiewerkstroom.
$applicationRegistration = New-AzADApplication -DisplayName 'toy-reusable' New-AzADAppFederatedCredential ` -Name 'toy-reusable-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 ToyReusable --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 ToyReusable -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)"
Noteer de waarde van uw toepassings-id voor de AZURE_CLIENT_ID. U kunt deze waarde gebruiken wanneer u resources opschoont wanneer u klaar bent met deze module.
GitHub-geheimen maken
U hebt een workloadidentiteit en een resourcegroep gemaakt waarop deze kan worden geïmplementeerd. Maak vervolgens geheimen in GitHub Actions.
Ga in uw browser naar uw GitHub-opslagplaats.
Selecteer Instellingengeheimen>>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.