Övning – Konfigurera din miljö
Viktigt!
Du behöver en egen Azure-prenumeration för att utföra den här övningen, och avgifter kan tillkomma. Om du inte redan har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Innan du börjar publicera leksaksföretagets återanvändbara Bicep-kod måste du konfigurera din miljö. I det här avsnittet ser du till att dina Azure- och GitHub-miljöer har konfigurerats för att slutföra resten av den här modulen.
För att uppfylla dessa mål gör du följande:
- Konfigurera en GitHub-lagringsplats för den här modulen.
- Klona lagringsplatsen till datorn.
- Skapa en resursgrupp i Azure.
- Skapa en hemlighet i GitHub.
Hämta GitHub-lagringsplatsen
Här skapar du en ny GitHub-lagringsplats baserat på en malllagringsplats. Malllagringsplatsen innehåller de filer som du behöver för att komma igång för den här modulen.
Modulerna i den här utbildningsvägen är en del av en utveckling. I utbildningssyfte har varje modul en associerad GitHub-malllagringsplats.
Dricks
Även om du har slutfört den föregående modulen i utbildningsvägen följer du de här anvisningarna för att skapa en ny lagringsplats och se till att du ger den ett nytt namn.
Börja från malllagringsplatsen
Kör en mall som konfigurerar din GitHub-lagringsplats.
På GitHub-webbplatsen följer du dessa steg för att skapa en lagringsplats från mallen:
Logga in på GitHub.
Välj Använd den här mallen>Skapa en ny lagringsplats.
Som Ägare väljer du ditt GitHub-konto.
Ange ett lagringsplatsnamn för det nya projektet, till exempel leksaksåteranvändbart.
Välj alternativet Offentlig .
När du skapar egna lagringsplatser kanske du vill göra dem privata. I den här modulen använder du funktioner i GitHub som endast fungerar tillsammans med offentliga lagringsplatser och GitHub Enterprise-konton.
Välj Create repository (Skapa lagringsplats).
Viktigt!
Den sista övningen i den här modulen innehåller viktiga rensningssteg. Följ rensningsstegen även om du inte slutför den här modulen.
Klona lagringsplatsen
Nu när du har en kopia av malllagringsplatsen i ditt eget konto klonar du den här lagringsplatsen lokalt så att du kan börja arbeta i den.
Välj Kod och välj sedan ikonen Kopiera URL till Urklipp .
Öppna Visual Studio Code.
Öppna ett Terminalfönster i Visual Studio Code genom att välja Terminal>Ny terminal. Fönstret öppnas vanligtvis längst ned på skärmen.
I terminalen går du till katalogen där du vill klona GitHub-lagringsplatsen på den lokala datorn. Om du till exempel vill klona lagringsplatsen i mappen lagringsplatser kör du följande kommando:
cd repositories
Skriv
git clone
och klistra sedan in den URL som du kopierade tidigare, vilket ser ut ungefär så här:git clone https://github.com/mygithubuser/toy-reusable.git
Öppna Visual Studio Code igen i lagringsplatsens mapp genom att köra följande kommando i Visual Studio Code-terminalen:
code --reuse-window toy-reusable
Logga in på Azure
Om du vill arbeta med resursgrupper i Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att du har installerat Azure CLI-verktygen och Azure-kontotillägget för Visual Studio Code.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Standardgränssnittet är vanligtvis pwsh, vilket visas till höger i terminalfönstret.
Välj listrutan Starta profil och välj sedan Azure Cloud Shell (Bash).
Ett nytt gränssnitt öppnas.
Logga in på Azure med hjälp av Azure CLI
I Visual Studio Code-terminalen kör du följande kommando för att logga in på Azure:
az login
Logga in på ditt Azure-konto i webbläsaren som öppnas.
Om du vill arbeta med resursgrupper i Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att du har installerat Azure PowerShell och Azure-kontotillägget för Visual Studio Code.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Standardgränssnittet är vanligtvis pwsh, vilket visas till höger i terminalfönstret.
Välj listrutan Starta profil och välj sedan Azure Cloud Shell (PowerShell).
Ett nytt gränssnitt öppnas.
Logga in i Azure med Azure PowerShell
I Visual Studio Code-terminalen kör du följande kommando för att logga in på Azure:
Connect-AzAccount -UseDeviceAuthentication
Följ kommandoinstruktionerna för att logga in på ditt Azure-konto.
Skapa en arbetsbelastningsidentitet
Skapa sedan en arbetsbelastningsidentitet i Microsoft Entra-ID för ditt distributionsarbetsflöde.
För att skapa arbetsbelastningsidentiteterna använder jq
Azure CLI-kommandona för att parsa data från JSON-utdata. Om du inte har jq
installerat kan du använda Bash i Azure Cloud Shell för att skapa arbetsbelastningens identitet, resursgrupp och rolltilldelning och förbereda GitHub-hemligheterna.
Kör följande kod för att definiera variabler för ditt GitHub-användarnamn och lagringsplatsnamn. Se till att du ersätter
mygithubuser
med ditt GitHub-användarnamn, som du antecknade tidigare i den här övningen. Kontrollera också att du anger rätt GitHub-lagringsplatsnamn.githubOrganizationName='mygithubuser' githubRepositoryName='toy-reusable'
Skapa en arbetsbelastningsidentitet för ditt distributionsarbetsflöde.
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\"]}"
Kör följande kod för att definiera variabler för ditt GitHub-användarnamn och lagringsplatsnamn. Se till att du ersätter
mygithubuser
med ditt GitHub-användarnamn, som du antecknade tidigare i den här övningen. Kontrollera också att du anger rätt GitHub-lagringsplatsnamn.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-reusable'
Skapa en arbetsbelastningsidentitet för ditt distributionsarbetsflöde.
$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"
Skapa en resursgrupp i Azure och ge arbetsbelastningsidentiteten åtkomst
Skapa sedan en resursgrupp för webbplatsen. Den här processen ger även arbetsbelastningsidentiteten rollen Deltagare i resursgruppen, vilket gör att arbetsflödet kan distribueras till resursgruppen.
Kör följande Azure CLI-kommandon i Visual Studio Code-terminalen:
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
Kör följande Azure PowerShell-kommandon i Visual Studio Code-terminalen:
$resourceGroup = New-AzResourceGroup -Name ToyReusable -Location westus3
New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
-ApplicationId $applicationRegistration.AppId `
-RoleDefinitionName Contributor `
-Scope $resourceGroup.ResourceId
Förbereda GitHub-hemligheter
Kör följande kod för att visa de värden som du behöver skapa som GitHub-hemligheter:
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)"
Anteckna program-ID-värdet för AZURE_CLIENT_ID. Du kan använda det värdet när du rensar resurser när du är klar med den här modulen.
Skapa GitHub-hemligheter
Du har skapat en arbetsbelastningsidentitet och en resursgrupp som den kan distribuera till. Skapa sedan hemligheter i GitHub Actions.
Gå till din GitHub-lagringsplats i webbläsaren.
Välj Inställningar Hemligheter>>Åtgärder.
Välj Ny lagringsplatshemlighet.
Ge hemligheten namnet AZURE_CLIENT_ID.
I fältet Värde klistrar du in GUID från den första raden i terminalutdata. Inkludera
AZURE_CLIENT_ID
inte , kolon eller blanksteg i värdet.Välj Add secret (Lägg till hemlighet).
Upprepa processen för att skapa hemligheter för AZURE_TENANT_ID och AZURE_SUBSCRIPTION_ID och kopiera värdena från motsvarande fält i terminalutdata.
Kontrollera att listan med hemligheter nu visar alla tre hemligheterna.