Gyakorlat – Saját környezet beállítása
Fontos
Ennek a gyakorlatnak az elvégzéséhez saját Azure-előfizetés szükséges, amely költségekkel járhat. Ha még nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes fiókot.
Mielőtt elkezdené dolgozni a toy cég webhelyének munkafolyamatát, konfigurálnia kell a környezetet. Ebben a leckében győződjön meg arról, hogy az Azure- és a GitHub-környezetek be vannak állítva a modul többi részének befejezéséhez.
A célkitűzések teljesítéséhez a következőkre lesz szüksége:
- Állítson be egy GitHub-adattárat ehhez a modulhoz.
- Klónozza a projekt adattárát a számítógépre.
- Hozzon létre két számítási feladat-identitást a Microsoft Entra-azonosítóban.
- Hozzon létre két erőforráscsoportot az Azure-ban.
- Két titkos kulcs és környezet létrehozása a GitHubon.
A GitHub-adattár lekérése
Itt győződjön meg arról, hogy a GitHub-adattár be van állítva a modul többi részének befejezéséhez. Ezt úgy állíthatja be, hogy létrehoz egy új adattárat egy sablontárház alapján. A sablontár tartalmazza a modul első lépéseihez szükséges fájlokat.
Az ebben a képzési tervben szereplő modulok egy folyamat részei. Tanulási célokra minden modulhoz tartozik egy GitHub-sablontárház.
Tipp.
Még ha a képzési tervben is elvégezte az előző modult, kövesse az alábbi utasításokat egy új adattár létrehozásához, és győződjön meg arról, hogy új nevet ad neki.
Kezdés a sablonadattárból
Futtasson egy sablont, amely beállítja a GitHub-adattárat.
A GitHub-webhelyen az alábbi lépéseket követve hozzon létre egy adattárat a sablonból:
Válassza a Sablon>használata Új adattár létrehozása lehetőséget.
Jegyezze fel a GitHub-felhasználónevét vagy -szervezetét. A példában a GitHub felhasználóneve mygithubuser. Hamarosan szüksége lesz erre a névre.
Adja meg az új projekt nevét, például a toy-website-environments nevet.
Válassza a Nyilvános lehetőséget.
Ha saját adattárakat hoz létre, érdemes privátsá tenni őket. Ebben a modulban a GitHub néhány olyan funkciójával fog dolgozni, amelyek csak nyilvános adattárakkal és GitHub Enterprise-fiókokkal működnek.
Válassza az Adattár létrehozása sablonból lehetőséget.
Fontos
A modul utolsó gyakorlata fontos törlési lépéseket tartalmaz. Ügyeljen arra, hogy akkor is kövesse a tisztítási lépéseket, ha nem végzi el ezt a modult.
Ha a modul elvégzése nélkül szeretné megtisztítani az erőforrásokat, futtassa a következő parancsokat a Visual Studio Code termináljában:
az group delete --resource-group ToyWebsiteTest --yes --no-wait
az group delete --resource-group ToyWebsiteProduction --yes --no-wait
Az erőforráscsoport a háttérben törlődik.
Remove-AzResourceGroup -Name ToyWebsiteTest -Force
Remove-AzResourceGroup -Name ToyWebsiteProduction -Force
A tárház klónozása
Most már rendelkezik a sablontárház egy példányával a saját fiókjában. Ezután klónozza ezt az adattárat helyileg, hogy megkezdhesse a munkát.
Válassza a Kód lehetőséget, és válassza a másolás ikont.
Nyissa meg a Visual Studio Code-ot.
Nyisson meg egy Visual Studio Code-terminálablakot az Új terminál terminál>kiválasztásával. Az ablak általában a képernyő alján nyílik meg.
Lépjen a terminálon arra a könyvtárra, ahol klónozni szeretné a GitHub-adattárat a helyi számítógépen. Ha például a játékwebhely-környezetek mappába szeretné klónozni az adattárat, futtassa a következő parancsot:
cd toy-website-environments
Írja be
git clone
, majd illessze be a korábban másolt URL-címet, amely így néz ki:git clone https://github.com/mygithubuser/toy-website-environments.git
Nyissa meg újra a Visual Studio Code-ot az adattár mappájában az alábbi parancs futtatásával a Visual Studio Code termináljában:
code -r toy-website-environments
Bejelentkezés az Azure-ba
Az Azure-beli erőforráscsoportok használatához jelentkezzen be az Azure-fiókjába a Visual Studio Code terminálból. Győződjön meg arról, hogy telepítette az Azure CLI-eszközöket .
A Terminál menüben válassza az Új terminál lehetőséget. A terminálablak általában a képernyő alsó felében nyílik meg.
Az alapértelmezett rendszerhéj általában pwsh, ahogy a terminálablak jobb oldalán látható.
Válassza ki a rendszerhéj legördülő menüjét, majd válassza az Azure Cloud Shell (bash) lehetőséget.
Megnyílik egy új rendszerhéj.
Bejelentkezés az Azure-ba az Azure CLI használatával
A Visual Studio Code terminálon futtassa a következő parancsot az Azure-ba való bejelentkezéshez:
az login
A megnyíló böngészőben jelentkezzen be az Azure-fiókjába.
Az Azure-beli erőforráscsoportok használatához jelentkezzen be az Azure-fiókjába a Visual Studio Code terminálból. Győződjön meg arról, hogy telepítette az Azure PowerShellt.
A Terminál menüben válassza az Új terminál lehetőséget. A terminálablak általában a képernyő alsó felében nyílik meg.
Az alapértelmezett rendszerhéj általában pwsh, ahogy a terminálablak jobb oldalán látható.
Válassza ki a rendszerhéj legördülő menüjét, majd válassza az Azure Cloud Shell (PowerShell) lehetőséget.
Megnyílik egy új rendszerhéj.
Bejelentkezés az Azure-ba az Azure PowerShell használatával
A Visual Studio Code terminálon futtassa a következő parancsot az Azure-ba való bejelentkezéshez:
Connect-AzAccount
A megnyíló böngészőben jelentkezzen be az Azure-fiókjába.
Két számítási feladat identitásának létrehozása
Ezután hozzon létre két számítási feladat-identitást a Microsoft Entra-azonosítóban: egyet a tesztkörnyezethez, a másikat az éles környezethez.
A számítási feladatok identitásainak létrehozásához az Azure CLI-parancsok jSON-kimenetből származó adatok elemzésére használhatók jq
. Ha még nem jq
telepítette, a Bash használatával létrehozhatja az Azure Cloud Shellben a számítási feladat identitását, erőforráscsoportját és szerepkör-hozzárendelését, és előkészítheti a GitHub titkos kulcsokat.
Futtassa az alábbi kódot a GitHub-felhasználónév és az adattár nevének változóinak meghatározásához. Győződjön meg arról, hogy a GitHub-felhasználónevét lecseréli
mygithubuser
, amelyet a gyakorlat korábbi részében feljegyzett. Győződjön meg arról is, hogy a megfelelő GitHub-adattárnevet adja meg.githubOrganizationName='mygithubuser' githubRepositoryName='toy-website-environments'
Számítási feladatok identitásának létrehozása a tesztkörnyezetben történő üzembe helyezéshez. A számítási feladat identitásának két összevont hitelesítő adatra van szüksége: az egyiket a munkafolyamat az érvényesítési feladat futtatásakor használja, mert ez a feladat nincs GitHub-környezethez társítva. A másodikat akkor használja a rendszer, ha a munkafolyamat futtatja az üzembe helyezési feladatot, amely a GitHub tesztelési környezetében fut.
testApplicationRegistrationDetails=$(az ad app create --display-name 'toy-website-environments-test') testApplicationRegistrationObjectId=$(echo $testApplicationRegistrationDetails | jq -r '.id') testApplicationRegistrationAppId=$(echo $testApplicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $testApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-environments-test\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:environment:Test\",\"audiences\":[\"api://AzureADTokenExchange\"]}" az ad app federated-credential create \ --id $testApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-environments-test-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Futtassa a következő kódot, amely hasonló számítási feladat-identitást és összevont hitelesítő adatokat hoz létre az éles környezethez:
productionApplicationRegistrationDetails=$(az ad app create --display-name 'toy-website-environments-production') productionApplicationRegistrationObjectId=$(echo $productionApplicationRegistrationDetails | jq -r '.id') productionApplicationRegistrationAppId=$(echo $productionApplicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $productionApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-environments-production\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:environment:Production\",\"audiences\":[\"api://AzureADTokenExchange\"]}" az ad app federated-credential create \ --id $productionApplicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-environments-production-branch\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Futtassa az alábbi kódot a GitHub-felhasználónév és az adattár nevének változóinak meghatározásához. Győződjön meg arról, hogy a GitHub-felhasználónevét lecseréli
mygithubuser
, amelyet a gyakorlat korábbi részében feljegyzett. Győződjön meg arról is, hogy a megfelelő GitHub-adattárnevet adja meg.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-website-environments'
Futtassa a következő kódot, amely létrehoz egy számítási feladat-identitást a tesztkörnyezethez, és társítja azt a GitHub-adattárhoz:
$testApplicationRegistration = New-AzADApplication -DisplayName 'toy-website-environments-test' New-AzADAppFederatedCredential ` -Name 'toy-website-environments-test' ` -ApplicationObjectId $testApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):environment:Test" New-AzADAppFederatedCredential ` -Name 'toy-website-environments-test-branch' ` -ApplicationObjectId $testApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Futtassa a következő kódot, amely az éles környezethez hasonló folyamatot követ:
$productionApplicationRegistration = New-AzADApplication -DisplayName 'toy-website-environments-production' New-AzADAppFederatedCredential ` -Name 'toy-website-environments-production' ` -ApplicationObjectId $productionApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):environment:Production" New-AzADAppFederatedCredential ` -Name 'toy-website-environments-production-branch' ` -ApplicationObjectId $productionApplicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Hozzon létre két erőforráscsoportot az Azure-ban, és adjon hozzáférést a számítási feladat identitásához
Ezután hozzon létre egy erőforráscsoportot az egyes környezetekhez. Ez a folyamat a megfelelő számítási feladat identitásának az erőforráscsoport közreműködői szerepkörét is megadja, így a munkafolyamat üzembe helyezhető az erőforráscsoportban.
A tesztkörnyezet erőforráscsoportjának létrehozásához és a számítási feladat identitásának hozzáférésének biztosításához futtassa a következő Azure CLI-parancsokat a Visual Studio Code terminálon:
testResourceGroupResourceId=$(az group create --name ToyWebsiteTest --location eastus --query id --output tsv) az ad sp create --id $testApplicationRegistrationObjectId az role assignment create \ --assignee $testApplicationRegistrationAppId \ --role Contributor \ --scope $testResourceGroupResourceId
Futtasson egy hasonló folyamatot az éles környezet erőforráscsoportjának létrehozásához:
productionResourceGroupResourceId=$(az group create --name ToyWebsiteProduction --location eastus --query id --output tsv) az ad sp create --id $productionApplicationRegistrationObjectId az role assignment create \ --assignee $productionApplicationRegistrationAppId \ --role Contributor \ --scope $productionResourceGroupResourceId
A tesztkörnyezet erőforráscsoportjának létrehozásához és a számítási feladatok identitásának hozzáférésének biztosításához futtassa a következő Azure PowerShell-parancsokat a Visual Studio Code terminálon:
$testResourceGroup = New-AzResourceGroup -Name ToyWebsiteTest -Location eastus New-AzADServicePrincipal -AppId $($testApplicationRegistration.AppId) New-AzRoleAssignment ` -ApplicationId $($testApplicationRegistration.AppId) ` -RoleDefinitionName Contributor ` -Scope $($testResourceGroup.ResourceId)
Futtasson egy hasonló folyamatot az éles környezet erőforráscsoportjának létrehozásához:
$productionResourceGroup = New-AzResourceGroup -Name ToyWebsiteProduction -Location eastus New-AzADServicePrincipal -AppId $($productionApplicationRegistration.AppId) New-AzRoleAssignment ` -ApplicationId $($productionApplicationRegistration.AppId) ` -RoleDefinitionName Contributor ` -Scope $($productionResourceGroup.ResourceId)
GitHub-titkos kódok előkészítése
Futtassa a következő kódot a GitHub-titkos kulcsként létrehozandó értékek megjelenítéséhez:
echo "AZURE_CLIENT_ID_TEST: $testApplicationRegistrationAppId"
echo "AZURE_CLIENT_ID_PRODUCTION: $productionApplicationRegistrationAppId"
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_TEST: $($testApplicationRegistration.AppId)"
Write-Host "AZURE_CLIENT_ID_PRODUCTION: $($productionApplicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
GitHub-titkos kódok létrehozása
Létrehozott két számítási feladatidentitást és azokat az erőforráscsoportokat, ahol üzembe helyezik őket. Ezután hozzon létre titkos kulcsokat a GitHub Actionsben.
A böngészőben keresse meg a GitHub-adattárat.
Válassza a Gépház> Secrets és változók>műveletek lehetőséget.
Válassza az Új tárház titkos kódját.
Nevezze el a titkos AZURE_CLIENT_ID_TEST.
Az Érték mezőben illessze be a GUID-t a terminálkimenet első sorából. Ne foglalja bele
AZURE_CLIENT_ID_TEST
a kettőspontot vagy az értékben lévő szóközöket.Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.
Ismételje meg a folyamatot a AZURE_CLIENT_ID_PRODUCTION, AZURE_TENANT_ID és AZURE_SUBSCRIPTION_ID titkos kulcsainak létrehozásához, és másolja ki az értékeket a terminálkimenet megfelelő mezőiből.
Ellenőrizze, hogy a titkos kulcsok listája most mind a négy titkos elemet tartalmazza-e.
Környezetek létrehozása a GitHubon
A böngészőben lépjen a Gépház> Környezetek elemre.
Válassza az Új környezet lehetőséget.
Adja meg a Teszt nevet a környezet neveként.
Válassza a Környezet konfigurálása lehetőséget.
Válassza a Környezetek lehetőséget a környezetek listájához való visszatéréshez.
Ismételje meg a folyamatot egy másik, Production nevű környezet létrehozásához.
Hagyja nyitva az éles környezet konfigurációs oldalát.
Védelmi szabály hozzáadása az éles környezethez
Válassza a Szükséges véleményezők lehetőséget.
A Személyek vagy csapatok keresése szövegmezőbe írja be a saját GitHub-felhasználónevét, és válassza ki saját magát.
Válassza a Védelmi szabályok mentése lehetőséget.
Válassza a Környezetek lehetőséget a konfigurációból való kilépéshez.