Gyakorlat – Saját környezet beállítása

Befejeződött

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:

  1. Válassza a Sablon>használata Új adattár létrehozása lehetőséget.

    Képernyőkép a GitHub felületéről, amelyen a sablon-adattár látható, és a

  2. 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.

  3. Adja meg az új projekt nevét, például a toy-website-environments nevet.

  4. 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.

  5. Válassza az Adattár létrehozása sablonból lehetőséget.

    Képernyőkép a GitHub felületéről, amelyen az adattár létrehozása lap látható.

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.

  1. Válassza a Kód lehetőséget, és válassza a másolás ikont.

    Képernyőkép az új adattárat megjelenítő GitHub-felületről, kiemelve az adattár U R L másolási gombját.

  2. Nyissa meg a Visual Studio Code-ot.

  3. 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.

  4. 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
    
  5. Í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
    
  6. 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 .

  1. 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.

  2. Az alapértelmezett rendszerhéj általában pwsh, ahogy a terminálablak jobb oldalán látható.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a rendszerhéj lehetőségként p w s h látható.

  3. Válassza ki a rendszerhéj legördülő menüjét, majd válassza az Azure Cloud Shell (bash) lehetőséget.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a terminálhéj legördülő listája látható, és az Azure Cloud Shell (bash) ki van választva.

  4. Megnyílik egy új rendszerhéj.

Bejelentkezés az Azure-ba az Azure CLI használatával

  1. A Visual Studio Code terminálon futtassa a következő parancsot az Azure-ba való bejelentkezéshez:

    az login
    
  2. 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.

  1. 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.

  2. Az alapértelmezett rendszerhéj általában pwsh, ahogy a terminálablak jobb oldalán látható.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a rendszerhéj lehetőségként p w s h látható.

  3. Válassza ki a rendszerhéj legördülő menüjét, majd válassza az Azure Cloud Shell (PowerShell) lehetőséget.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a terminálhéj legördülő listája látható, és az Azure Cloud Shell (PowerShell) ki van választva.

  4. Megnyílik egy új rendszerhéj.

Bejelentkezés az Azure-ba az Azure PowerShell használatával

  1. A Visual Studio Code terminálon futtassa a következő parancsot az Azure-ba való bejelentkezéshez:

    Connect-AzAccount
    
  2. 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.

  1. 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'
    
  2. 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\"]}"
    
  3. 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\"]}"
    
  1. 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'
    
  2. 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"
    
  3. 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.

  1. 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
    
  2. 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
    
  1. 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)
    
  2. 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.

  1. A böngészőben keresse meg a GitHub-adattárat.

  2. Válassza a Gépház> Secrets és változók>műveletek lehetőséget.

  3. Válassza az Új tárház titkos kódját.

    Képernyőkép a GitHub felületéről, amelyen a

  4. Nevezze el a titkos AZURE_CLIENT_ID_TEST.

  5. Az Érték mezőben illessze be a GUID-t a terminálkimenet első sorából. Ne foglalja bele AZURE_CLIENT_ID_TESTa kettőspontot vagy az értékben lévő szóközöket.

  6. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

    Képernyőkép a GitHub felületéről, amelyen az

  7. 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.

  8. Ellenőrizze, hogy a titkos kulcsok listája most mind a négy titkos elemet tartalmazza-e.

    Képernyőkép a GitHub felületéről, amelyen a titkos kódok listája látható, beleértve a teszt- és az éles titkos kulcsokat is.

Környezetek létrehozása a GitHubon

  1. A böngészőben lépjen a Gépház> Környezetek elemre.

  2. Válassza az Új környezet lehetőséget.

    Képernyőkép a GitHub felületéről, amelyen a Környezetek lap és a környezet létrehozására szolgáló gomb látható.

  3. Adja meg a Teszt nevet a környezet neveként.

    Képernyőkép egy Teszt nevű új környezet GitHub-oldaláról a Környezet konfigurálása gombbal.

  4. Válassza a Környezet konfigurálása lehetőséget.

  5. Válassza a Környezetek lehetőséget a környezetek listájához való visszatéréshez.

    Képernyőkép egy Teszt nevű új környezet GitHub-oldaláról a Környezet hivatkozással.

  6. 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

  1. Válassza a Szükséges véleményezők lehetőséget.

  2. 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.

    Képernyőkép a GitHub felületéről, amelyen a szükséges véleményező hozzáadására szolgáló oldal látható, a kitöltött részletekkel és a Védelmi szabályok mentése gombbal.

  3. Válassza a Védelmi szabályok mentése lehetőséget.

  4. Válassza a Környezetek lehetőséget a konfigurációból való kilépéshez.