Sdílet prostřednictvím


Nasazení šablon ARM pomocí GitHub Actions

GitHub Actions je sada funkcí v GitHubu, která automatizuje pracovní postupy vývoje softwaru na stejném místě, kde ukládáte kód a spolupracujete na žádostech o přijetí změn a problémech.

Pomocí akce nasadit šablonu Azure Resource Manageru můžete automatizovat nasazení šablony Azure Resource Manageru (šablony ARM) do Azure.

Požadavky

Přehled souboru pracovního postupu

Pracovní postup je definován souborem YAML (.yml) v /.github/workflows/ cestě v úložišti. Tato definice obsahuje různé kroky a parametry, které tvoří pracovní postup.

Soubor má dvě části:

Sekce Úlohy
Authentication 1. Vygenerujte přihlašovací údaje pro nasazení.
Nasazení 1. Nasaďte šablonu Resource Manageru.

Generování přihlašovacích údajů pro nasazení

Pokud chcete s OIDC použít akci přihlášení k Azure, musíte nakonfigurovat přihlašovací údaje federované identity v aplikaci Microsoft Entra nebo spravované identitě přiřazené uživatelem.

Možnost 1: Aplikace Microsoft Entra

Možnost 2: Spravovaná identita přiřazená uživatelem

Konfigurace tajných kódů GitHubu

K akci přihlášení musíte zadat ID klienta, ID adresáře (tenanta) a ID předplatného vaší aplikace. Tyto hodnoty je možné zadat buď přímo v pracovním postupu, nebo je můžete uložit v tajných kódech GitHubu a odkazovat na je ve vašem pracovním postupu. Uložením hodnot jako tajných kódů GitHubu je bezpečnější možnost.

  1. Na GitHubu přejděte do svého úložiště.

  2. Vyberte Akce tajných kódů zabezpečení > a proměnných>.

    Snímek obrazovky s přidáním tajného kódu

  3. Vyberte Nový tajný klíč úložiště.

    Poznámka:

    Pokud chcete zvýšit zabezpečení pracovního postupu ve veřejných úložištích, používejte tajné kódy prostředí místo tajných kódů úložiště. Pokud prostředí vyžaduje schválení, úloha nemůže získat přístup k tajným kódům prostředí, dokud ho některý z požadovaných kontrolorů neschválí.

  4. Vytváření tajných kódů pro AZURE_CLIENT_ID, AZURE_TENANT_IDa AZURE_SUBSCRIPTION_ID. Zkopírujte tyto hodnoty z vaší aplikace Microsoft Entra nebo spravované identity přiřazené uživatelem pro tajné kódy GitHubu:

    Tajný kód GitHubu Spravovaná identita přiřazená uživatelem nebo aplikace Microsoft Entra
    AZURE_CLIENT_ID Client ID
    AZURE_SUBSCRIPTION_ID Subscription ID
    AZURE_TENANT_ID ID adresáře (klienta)

    Poznámka:

    Z bezpečnostních důvodů doporučujeme místo předávání hodnot přímo pracovnímu postupu používat tajné kódy GitHubu.

Přidání šablony Resource Manageru

Přidejte šablonu Resource Manageru do úložiště GitHub. Tato šablona vytvoří účet úložiště.

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

Soubor můžete umístit kamkoli do úložiště. Ukázka pracovního postupu v další části předpokládá, že soubor šablony má název azuredeploy.json a je uložený v kořenovém adresáři vašeho úložiště.

Vytvoření pracovního postupu

Soubor pracovního postupu musí být uložený ve složce .github/workflows v kořenovém adresáři úložiště. Přípona souboru pracovního postupu může být buď .yml nebo .yaml.

  1. V úložišti GitHub vyberte v horní nabídce akce .
  2. Vyberte Nový pracovní postup.
  3. Vyberte nastavení pracovního postupu sami.
  4. Pokud dáváte přednost jinému názvu než main.yml, přejmenujte soubor pracovního postupu. Příklad: deployStorageAccount.yml.
  5. Obsah souboru YML nahraďte následujícím kódem:
  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 }}

Poznámka:

Soubor parametrů formátu JSON můžete místo toho zadat v akci nasazení ARM (příklad: .azuredeploy.parameters.json).

První část souboru pracovního postupu obsahuje:

  • name: Název pracovního postupu.
  • on: Název událostí GitHubu, které aktivují pracovní postup. Pracovní postup se aktivuje, když v hlavní větvi dojde k události push, která upraví alespoň jeden ze dvou zadaných souborů. Dva soubory jsou soubor pracovního postupu a soubor šablony.
  1. Vyberte Start commit (Spustit zápis).
  2. Vyberte Potvrdit přímo do hlavní větve.
  3. Vyberte Potvrdit nový soubor (nebo Potvrdit změny).

Vzhledem k tomu, že je pracovní postup nakonfigurovaný tak, aby se aktivoval buď soubor pracovního postupu, nebo aktualizovaný soubor šablony, pracovní postup se spustí hned po potvrzení změn.

Kontrola stavu pracovního postupu

  1. Vyberte kartu Akce. Zobrazí se seznam pracovních postupů vytvoření deployStorageAccount.yml. Spuštění pracovního postupu trvá 1 až 2 minuty.
  2. Výběrem pracovního postupu ho otevřete.
  3. V nabídce vyberte Spustit nasazení ARM a ověřte nasazení.

Vyčištění prostředků

Pokud už skupinu prostředků a úložiště nepotřebujete, vyčistěte prostředky, které jste nasadili, odstraněním skupiny prostředků a úložiště GitHub.

Další kroky