Rychlý start: Nasazení souborů Bicep pomocí GitHub Actions
GitHub Actions je sada funkcí v GitHubu pro automatizaci pracovních postupů vývoje softwaru. V tomto rychlém startu použijete nasazení GitHub Actions pro Azure Resource Manager k automatizaci nasazení souboru Bicep do Azure.
Poskytuje krátký úvod k akcím GitHubu a souborům Bicep. Pokud chcete podrobnější kroky k nastavení akcí a projektu GitHubu, přečtěte si téma Nasazení prostředků Azure pomocí Bicep a GitHub Actions.
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í souborů Bicep a souborů pracovního postupu. Pokud ho chcete vytvořit, přečtěte si téma Vytvoření nového úložiště.
Vytvořit skupinu zdrojů
Vytvořte skupinu prostředků. Později v tomto rychlém startu nasadíte soubor Bicep do této skupiny prostředků.
az group create -n exampleRG -l westus
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í souboru Bicep
Přidejte soubor Bicep do úložiště GitHub. Následující soubor Bicep vytvoří účet úložiště:
@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@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
Soubor Bicep vyžaduje jeden parametr s názvem storagePrefix se 3 až 11 znaky.
Soubor můžete umístit kamkoli do úložiště. Ukázka pracovního postupu v další části předpokládá, že soubor Bicep má název main.bicep a je uložený v kořenovém adresáři vašeho úložiště.
Vytvoření pracovního postupu
Pracovní postup definuje kroky, které se mají provést při aktivaci. Jedná se o soubor YAML (.yml) v cestě k vašemu úložišti .github/workflows/ . Přípona souboru pracovního postupu může být buď .yml nebo .yaml.
Pokud chcete vytvořit pracovní postup, proveďte následující kroky:
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: deployBicepFile.yml.
Obsah souboru yml nahraďte následujícím kódem:
on: [push] name: Azure ARM permissions: id-token: write contents: read jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} # Deploy Bicep file - name: deploy 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
Vyberte Potvrdit změny.
Vyberte Potvrdit přímo do hlavní větve.
Vyberte Potvrdit nový soubor (nebo Potvrdit změny).
Aktualizace souboru pracovního postupu nebo souboru Bicep aktivuje pracovní postup. 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í deployBicepFile.yml. Spuštění pracovního postupu trvá 1 až 2 minuty.
- Vyberte pracovní postup, který chcete otevřít, a ověřte, zda je
Success
.Status
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.
az group delete --name exampleRG