Share via


ARM-sjablonen implementeren met behulp van GitHub Actions

GitHub Actions is een suite met functies in GitHub om uw werkstromen voor softwareontwikkeling te automatiseren op dezelfde plaats waar u code opslaat en samenwerkt aan pull-aanvragen en problemen.

Gebruik de actie Azure Resource Manager-sjabloon implementeren om het implementeren van een Azure Resource Manager-sjabloon (ARM-sjabloon) in Azure te automatiseren.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken

  • Een GitHub-account. Als u geen account hebt, kunt u zich registreren voor een gratis account.

    • Een GitHub-opslagplaats voor het opslaan van uw Resource Manager-sjablonen en uw werkstroombestanden. Zie Een nieuwe opslagplaats maken om er een te maken.

Overzicht van werkstroom bestand

Een werkstroom wordt gedefinieerd door een YAML-bestand (.yml) in het pad /.github/workflows/ in uw opslagplaats. Deze definitie bevat de verschillende stappen en parameters die deel uitmaken van de werkstroom.

Het bestand heeft twee secties:

Sectie Opdrachten
Verificatie 1. Implementatiereferenties genereren.
Implementatie 1. Implementeer de Resource Manager-sjabloon.

Genereer implementatiereferenties

Maak een service-principal met de opdracht az ad sp create-for-rbac in de Azure CLI. Voer deze opdracht uit met Azure Cloud Shell in de Azure Portal of door de knop Uitproberen te selecteren.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

De parameter --json-auth is beschikbaar in Azure CLI-versies >= 2.51.0. Versies vóór dit gebruik --sdk-auth met een afschaffingswaarschuwing.

Vervang in het bovenstaande voorbeeld de tijdelijke aanduidingen door uw abonnements-id, resourcegroepnaam en app-naam. De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met hieronder. Kopieer dit JSON-object voor later gebruik.

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

De GitHub-geheimen configureren

  1. Ga in GitHub naar uw opslagplaats.

  2. Ga naar Instellingen in het navigatiemenu.

  3. Selecteer Acties voor beveiligingsgeheimen > en variabelen>.

    Schermopname van het toevoegen van een geheim

  4. Selecteer Nieuw opslagplaatsgeheim.

  5. Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam AZURE_CREDENTIALS.

  6. Selecteer Geheim toevoegen.

Resource Manager-sjabloon toevoegen

Voeg een Resource Manager-sjabloon toe aan uw GitHub-opslagplaats. Met deze sjabloon maakt u een opslagaccount.

https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json

U kunt het bestand overal in de opslagplaats plaatsen. In het voorbeeld van de werkstroom in de volgende sectie wordt ervan uitgegaan dat het sjabloonbestand de naam azuredeploy.json heeft en wordt opgeslagen in de hoofdmap van uw opslagplaats.

Werkstroom maken

Het werkstroombestand moet worden opgeslagen in de map .github/workflows in de hoofdmap van uw opslagplaats. De bestandsextensie van de werkstroom kan .yml of .yaml zijn.

  1. Selecteer in uw GitHub-opslagplaats Acties in het bovenste menu.
  2. Selecteer Nieuwe werkstroom.
  3. Selecteer zelf een werkstroom instellen.
  4. Wijzig de naam van het werkstroombestand als u de voorkeur geeft aan een andere naam dan main.yml. Bijvoorbeeld: deployStorageAccount.yml.
  5. Vervang de inhoud van het yml-bestand door het volgende:
  on: [push]
  name: Azure ARM
  jobs:
    build-and-deploy:
      runs-on: ubuntu-latest
      steps:

        # Checkout code
      - uses: actions/checkout@main

        # Log into Azure
      - uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

        # Deploy ARM template
      - name: Run ARM deploy
        uses: azure/arm-deploy@v1
        with:
          subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
          resourceGroupName: ${{ secrets.AZURE_RG }}
          template: ./azuredeploy.json
          parameters: storageAccountType=Standard_LRS

        # output containerName variable from template
      - run: echo ${{ steps.deploy.outputs.containerName }}

Notitie

U kunt in plaats daarvan een parameterbestand voor de JSON-indeling opgeven in de ARM-implementatieactie (bijvoorbeeld: .azuredeploy.parameters.json).

De eerste sectie van het werkstroombestand bevat:

  • name: De naam van de werkstroom.
  • on: De naam van de GitHub-gebeurtenissen die de werkstroom activeren. De werkstroom wordt geactiveerd wanneer er een pushgebeurtenis op de hoofdbranch is, waarmee ten minste één van de twee opgegeven bestanden wordt gewijzigd. De twee bestanden zijn het werkstroombestand en het sjabloonbestand.
  1. Selecteer Doorvoeren starten.
  2. Selecteer Doorvoeren rechtstreeks naar de hoofdbranch.
  3. Selecteer Nieuw bestand doorvoeren (of Wijzigingen doorvoeren).

Omdat de werkstroom is geconfigureerd om te worden geactiveerd door het werkstroombestand of het sjabloonbestand dat wordt bijgewerkt, start de werkstroom direct nadat u de wijzigingen hebt doorgevoerd.

Werkstroomstatus controleren

  1. Selecteer het tabblad Acties . Er wordt een werkstroom maken deployStorageAccount.yml weergegeven. Het duurt 1-2 minuten om de werkstroom uit te voeren.
  2. Selecteer de werkstroom om deze te openen.
  3. Selecteer ARM-implementatie uitvoeren in het menu om de implementatie te controleren.

Resources opschonen

Wanneer uw resourcegroep en opslagplaats niet meer nodig zijn, schoont u de resources op die u hebt geïmplementeerd door de resourcegroep en uw GitHub-opslagplaats te verwijderen.

Volgende stappen