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
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Účet GitHub. Pokud ho nemáte, zdarma se zaregistrujte.
- Úložiště GitHub pro ukládání šablon Resource Manageru a souborů pracovního postupu. Pokud ho chcete vytvořit, přečtěte si téma Vytvoření nového úložiště.
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
- Vytvořte aplikaci Microsoft Entra s instančním objektem pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
- Zkopírujte hodnoty ID klienta, ID předplatného a ID adresáře (tenanta) a použijte je později v pracovním postupu GitHub Actions.
- Přiřaďte k instančnímu objektu příslušnou roli pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
- Nakonfigurujte přihlašovací údaje federované identity v aplikaci Microsoft Entra tak, aby důvěřovaly tokenům vydaným GitHub Actions do vašeho úložiště GitHub.
Možnost 2: Spravovaná identita přiřazená uživatelem
- Vytvořte spravovanou identitu přiřazenou uživatelem.
- Zkopírujte hodnoty ID klienta, ID předplatného a ID adresáře (tenanta) a použijte je později v pracovním postupu GitHub Actions.
- Přiřaďte spravované identitě přiřazené uživatelem odpovídající roli.
- Nakonfigurujte přihlašovací údaje federované identity pro spravovanou identitu přiřazenou uživatelem tak, aby důvěřovaly tokenům vydaným GitHub Actions ve vašem úložišti GitHub.
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.
Na GitHubu přejděte do svého úložiště.
Vyberte Akce tajných kódů zabezpečení > a proměnných>.
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í.
Vytváření tajných kódů pro
AZURE_CLIENT_ID
,AZURE_TENANT_ID
aAZURE_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.
- V úložišti GitHub vyberte v horní nabídce akce .
- Vyberte Nový pracovní postup.
- Vyberte nastavení pracovního postupu sami.
- Pokud dáváte přednost jinému názvu než main.yml, přejmenujte soubor pracovního postupu. Příklad: deployStorageAccount.yml.
- 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.
- Vyberte Start commit (Spustit zápis).
- Vyberte Potvrdit přímo do hlavní větve.
- 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
- Vyberte kartu Akce. Zobrazí se seznam pracovních postupů vytvoření deployStorageAccount.yml. Spuštění pracovního postupu trvá 1 až 2 minuty.
- Výběrem pracovního postupu ho otevřete.
- 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.