Cvičení – nasazení šablon ARM v rámci úsilí o CI/CD pomocí GitHub Actions
Tady nasadíte šablonu Azure Resource Manageru (ARM) z pracovního postupu GitHub Actions.
Důležitý
Toto cvičení provedete mimo prostředí Microsoft Learn. Toto cvičení vyžaduje, abyste měli vlastní předplatné Azure a můžou se vám účtovat poplatky. To je nezbytné, protože budete muset vytvořit hlavní službu, což není podporováno v předplatném sandboxu. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet, než začnete.
Vytvoření účtu a úložiště GitHub
Nejprve, pokud nemáte účet GitHub, vytvořte si ho teď na stránce pro vytvoření účtu GitHubu. (Je zdarma.)
Jakmile budete mít účet, přihlaste se a vytvořte nové úložiště, ve kterém můžete šablony uchovávat jako součást modelu infrastruktury jako kódu (IaC). Pokud chcete vytvořit úložiště (běžně označované jako úložiště v oboru), postupujte takto:
V pravém horním rohu libovolné stránky na webu GitHubu použijte rozevírací nabídku + a vyberte Nové úložiště. Nebo vyberte zelené tlačítko Vytvořit úložiště, pokud je k dispozici.
Zadejte krátký a zapamatovatelný název úložiště. Například použijte Deploy-ARM-Template. Volitelně můžete přidat popis úložiště. Použijte například Nasazení první šablony ARM sGitHub Actions .
Zvolte nastavení viditelnosti úložiště. Veřejná úložiště jsou přístupná všem uživatelům internetu. Privátní úložiště jsou přístupná jenom vám a lidem, se kterými explicitně sdílíte přístup. (Oba fungují s tímto cvičením.)
V části Inicializovat toto úložiště pomocí:vyberte Přidat soubor README.
Vyberte Vytvořit úložiště.
Vytvořili jste úložiště a inicializovali jste ho pomocí souboru README. Je čas potvrdit šablonu a soubor parametrů šablony do úložiště.
Poznámka
Soubory README jsou skvělým místem pro podrobnější popis projektu nebo přidání dokumentace, jako je instalace nebo použití projektu. Obsah souboru README se automaticky zobrazí na přední stránce úložiště.
Přidejte soubor šablony ARM do úložiště
Na GitHubu přejděte na hlavní stránku úložiště.
Nad seznamem souborů vyberte v rozevíracím seznamu Přidat soubor možnost Vytvořit nový soubor.
Do pole název souboru zadejte název a příponu šablony. V našem cvičení použijte název azuredeploy.json. Zkopírujte a vložte následující šablonu do nového souboru GitHubu.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
Do oddílu Potvrdit nový soubor přidejte popis a vyberte Potvrdit nový soubor uložte ho do úložiště.
Konfigurace ověřování mezi GitHub Actions a předplatným Azure
Pokud chcete nasadit všechny prostředky do Azure pomocí GitHub Actions, musíte vytvořit instanční objekt Azure a udělit mu oprávnění k vytváření prostředků definovaných ve vašich šablonách. Tento krok provedete v části Azure Cloud Shell na webu Azure Portal po přihlášení k předplatnému.
Vytvoření účtu služby
Pro nasazení prostředků Azure pracovní postup GitHub Actions potřebuje správnou vestavěnou roli přispěvatele.
Následující skript Azure CLI ukazuje, jak můžete vygenerovat instanční objekt Azure s oprávněními přispěvatele ve skupině prostředků Azure. V této skupině prostředků se nasazují prostředky definované v šabloně ARM.
projectName="GitHubActionExercise"
location="eastus"
resourceGroupName="${projectName}-rg"
appName="http://${projectName}"
# Create the resource group
az group create --name $resourceGroupName --location $location
# Store the resource group ID in a variable
scope=$(az group list --query "[?contains(name, '$resourceGroupName')].id" -o tsv)
# Create the service principal with contributor rights to the resource group we just created
az ad sp create-for-rbac --name $appName --role Contributor --scopes $scope --sdk-auth
Když jste přihlášeni ke svému předplatnému, na portálu vyberte ikonu Cloud Shell a otevřete prostředí v dolní části stránky.
V příkazovém řádku použijte předchozí kód k vytvoření service principal. Zobrazí se následující výsledky. Zkopírujte část výsledků JSON (obsah v červeném rámečku na následujícím snímku obrazovky), protože ho potřebujete při konfiguraci tajného kódu na GitHubu.
cs-CZ:
Zkopírujte výstup JSON a uložte ho jako tajný kód GitHubu v úložišti GitHub pomocí následujícího postupu v GitHubu: V úložišti GitHub vyberte kartu Nastavení. V nabídce vlevo vyberte rozevírací seznam tajné kódy a pak vyberte Codespaces.
Zadejte následující hodnoty a pak vyberte Přidat tajný kód:
- Název: Zadejte AZURE_CREDENTIALS.
- Tajný: Vložte výstup JSON, který jste dříve zkopírovali.
Tyto informace potřebujete k zadání autentizace v pracovním postupu.
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 .yml nebo .yaml.
Můžete vytvořit soubor pracovního postupu a pak soubor odeslat/nahrát do úložiště. Nebo ho můžete vytvořit v rozhraní GitHubu pomocí následujícího postupu:
V úložišti GitHub vyberte v horní nabídce Actions a vyberte Nastavit pracovní postup sami.
Pokud dáváte přednost jinému názvu než main.yml, přejmenujte soubor pracovního postupu. Například použijte deployARMTemplate.yml.
Obsah souboru .yml nahraďte následujícím kódem.
Poznámka
GitHub Marketplace obsahuje několik vlastních akcí, které můžete použít k nasazení šablon ARM. Tento modul používá zprostředkovatele marketplace s názvem Nasazení šablony Azure Resource Manageru (ARM).
name: Deploy ARM Template on: push: branches: - main env: AZURE_SUBSCRIPTION_ID: << Subscription Id >> # set this to your Azure Subscription Id AZURE_RESOURCE_GROUP: GitHubActionExercise-rg # set this to your target resource group jobs: deploy-virtual-network-template: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@main - name: Login to Azure uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Deploy ARM Template uses: azure/arm-deploy@v1 with: scope: resourcegroup subscriptionId: ${{ env.AZURE_SUBSCRIPTION_ID }} resourceGroupName: ${{ env.AZURE_RESOURCE_GROUP }} template: ./azuredeploy.json
Soubor pracovního postupu má tři části.
name
: Název pracovního postupu.on
: Název události GitHubu, která aktivuje pracovní postup. Pracovní postup se aktivuje, když je událost push v hlavní větvi a upraví alespoň jeden soubor v hlavní větvi.jobs
: Běh pracovního postupu se skládá z jedné nebo více úloh. Pouze jedna úloha je nazývánadeploy-virtual-network-template
. Tato úloha má tři kroky.- Podívejte se na zdrojový kód.
- Přihlaste se k Azure.
- Nasaďte šablonu ARM.
Důležitý
Ověřte, že název tajného kódu ve výrazu
creds: ${{ secrets.AZURE_CREDENTIALS }}
odpovídá názvu tajného klíče, který jste uložili do nastavení úložiště. Ověřte také, že název šablony ARM v krokuDeploy ARM Template
template: $GITHUB_WORKSPACE/azuredeploy.json
odpovídá názvu, který jste si uložili v předchozím úložišti.Poznámka
Název skupiny prostředků by měl být
GitHubActionExercise-rg
, pokud jste při konfiguraci přihlašovacích údajů nasazení použili předchozí kód Azure CLI. Vygenerovaný název skupiny prostředků je název projektu s připojenýmrg
.Vyberte Spustit potvrzení. V případě potřeby přidejte komentář a popis.
Ujistěte se, že je vybraná možnost Zapsat přímo do hlavní větve a pak vyberte Zapsat nový soubor (nebo Zapsat změny).
cs-CZ:
Po vytvoření a potvrzení souboru pracovního postupu do hlavní větve úložiště se pracovní postup spustí automaticky, protože spouštěčem ve vašem pracovním postupu je potvrzení/odeslání změn do hlavní větve.
on: push: branches: - main
Přejděte do úložiště a zkontrolujte stav pracovního postupu.
Zkontrolujte své nasazení
Po dokončení pracovního postupu přejděte na web Azure Portal a zkontrolujte stav nasazení.
V levém panelu vyberte Skupiny prostředků>GitHubActionExercise-rg. V podokně Nasazení ověřte, že nasazení proběhlo úspěšně.