Rövid útmutató: Bicep-fájlok üzembe helyezése a GitHub Actions használatával

A GitHub Actions a GitHub szolgáltatáscsomagja, amely automatizálja a szoftverfejlesztési munkafolyamatokat. Ebben a rövid útmutatóban a GitHub Actions for Azure Resource Manager üzembe helyezésével automatizálhatja a Bicep-fájlok Azure-ban való üzembe helyezését.

Rövid bevezetést nyújt a GitHub-műveletekbe és a Bicep-fájlokba. Ha részletesebb lépéseket szeretne a GitHub-műveletek és -projektek beállításával kapcsolatban, olvassa el az Azure-erőforrások üzembe helyezését a Bicep és a GitHub Actions használatával.

Előfeltételek

Erőforráscsoport létrehozása

Hozzon létre egy erőforráscsoportot. A rövid útmutató későbbi részében üzembe helyezi a Bicep-fájlt ebben az erőforráscsoportban.

az group create -n exampleRG -l westus

Üzembehelyezési hitelesítő adatok létrehozása

A GitHub Actions identitás alatt fut. Az az ad sp create-for-rbac paranccsal hozzon létre egy szolgáltatásnevet az identitáshoz. Adja meg a szolgáltatásnévnek az előző munkamenetben létrehozott erőforráscsoport közreműködői szerepkörét, hogy az identitással rendelkező GitHub-művelet erőforrásokat hozzon létre ebben az erőforráscsoportban. Javasoljuk, hogy a minimálisan szükséges hozzáférést adja meg.

az ad sp create-for-rbac --name {app-name} --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/exampleRG --json-auth

Cserélje le a helyőrzőt {app-name} az alkalmazás nevére. Cserélje le {subscription-id} az előfizetés azonosítóját.

A kimenet egy JSON-objektum, amelynek szerepkör-hozzárendelési hitelesítő adatai az alábbiakhoz hasonló hozzáférést biztosítanak az App Service-alkalmazáshoz.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    ...
  }

Másolja ezt a JSON-objektumot későbbre. Csak a , clientSecret, subscriptionIdés tenantId értékeket tartalmazó clientIdszakaszokra lesz szüksége. Győződjön meg arról, hogy az utolsó sor végén nincs további vessző, például az tenantId előző példában szereplő sor, különben érvénytelen JSON-fájlt eredményez. A telepítés során hibaüzenet jelenik meg: "A bejelentkezés hiba miatt meghiúsult: A tartalom nem érvényes JSON-objektum. Ellenőrizze, hogy helyes-e a hitelesítési típus."

A GitHub titkos kulcsainak konfigurálása

Titkos kulcsokat hozhat létre azure-beli hitelesítő adataihoz, erőforráscsoportjához és előfizetéseihez. Ezeket a titkos kulcsokat a Munkafolyamat létrehozása szakaszban fogja használni.

  1. A GitHubon keresse meg az adattárat.

  2. Válassza Gépház > Titkos kulcsok és változók > Műveletek > új tárház titkos kulcsát.

  3. Illessze be az Azure CLI parancs teljes JSON-kimenetét a titkos kód értékmezőjébe. Nevezze el a titkos kulcsot AZURE_CREDENTIALS.

  4. Hozzon létre egy másik, névvel ellátott AZURE_RGtitkos kulcsot. Adja hozzá az erőforráscsoport nevét a titkos kód értékmezőjéhez (exampleRG).

  5. Hozzon létre egy másik, névvel ellátott AZURE_SUBSCRIPTIONtitkos kulcsot. Adja hozzá az előfizetés azonosítóját a titkos kód értékmezőjéhez (például: 90fd3f9d-4c61-432d-99ba-1273f236afa2).

Bicep-fájl hozzáadása

Adjon hozzá egy Bicep-fájlt a GitHub-adattárhoz. A következő Bicep-fájl létrehoz egy tárfiókot:

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'

param location string = resourceGroup().location

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

A Bicep-fájlhoz egy storagePrefix nevű paraméter szükséges 3–11 karakterből.

A fájlt bárhol elhelyezheti az adattárban. A következő szakaszban található munkafolyamat-minta feltételezi, hogy a Bicep-fájl neve main.bicep, és az adattár gyökerében van tárolva.

Munkafolyamat létrehozása

A munkafolyamat határozza meg az aktiváláskor végrehajtandó lépéseket. Ez egy YAML-fájl (.yml) az adattár .github/workflows/ elérési útján. A munkafolyamat fájlkiterjesztése lehet .yml vagy .yaml.

Munkafolyamat létrehozásához hajtsa végre a következő lépéseket:

  1. A GitHub-adattárban válassza a Műveletek lehetőséget a felső menüben.

  2. Válassza az Új munkafolyamat lehetőséget.

  3. Válassza ki , hogy saját maga állítson be egy munkafolyamatot.

  4. Nevezze át a munkafolyamat-fájlt, ha más nevet szeretne, mint main.yml. Például: deployBicepFile.yml.

  5. Cserélje le az yml-fájl tartalmát a következő kódra:

    name: Deploy Bicep file
    on: [push]
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
    
        - name: Checkout code
          uses: actions/checkout@main
    
        - name: Log into Azure
          uses: azure/login@v1
          with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
        - name: Deploy Bicep file
          uses: azure/arm-deploy@v1
          with:
            subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
            resourceGroupName: ${{ secrets.AZURE_RG }}
            template: ./main.bicep
            parameters: 'storagePrefix=mystore storageSKU=Standard_LRS'
            failOnStdErr: false
    

    Cserélje le mystore a saját tárfiók nevének előtagjára.

    Feljegyzés

    Az ARM Deploy műveletben (például: .azuredeploy.parameters.json) megadhat egy JSON formátumparaméterfájlt.

    A munkafolyamat-fájl első szakasza a következőket tartalmazza:

    • név: A munkafolyamat neve.
    • on: A munkafolyamatot aktiváló GitHub-események neve. A munkafolyamat akkor aktiválódik, ha leküldéses esemény van a fő ágon.
  6. Válassza a Módosítások véglegesítése lehetőséget.

  7. Válassza a Véglegesítés lehetőséget közvetlenül a főágra.

  8. Válassza az Új fájl véglegesítése (vagy Módosítások véglegesítése) lehetőséget.

A munkafolyamat-fájl vagy a Bicep-fájl frissítése aktiválja a munkafolyamatot. A munkafolyamat közvetlenül a módosítások véglegesítése után indul el.

Munkafolyamat állapotának ellenőrzése

  1. Válassza a Műveletek lapot. Megjelenik egy Létrehozás deployBicepFile.yml munkafolyamat a listában. A munkafolyamat futtatása 1–2 percet vesz igénybe.
  2. Válassza ki a munkafolyamatot a megnyitásához, és ellenőrizze, hogy azStatus.Success

Az erőforrások eltávolítása

Ha már nincs szükség az erőforráscsoportra és az adattárra, törölje az üzembe helyezett erőforrásokat az erőforráscsoport és a GitHub-adattár törlésével.

az group delete --name exampleRG

Következő lépések