Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
GitHub Actions můžete nastavit pro přihlášení k instanci služby Azure Stack Hub, spuštění PowerShellu a spuštění skriptu Azure CLI. Můžete ho použít jako základ pracovního postupu kontinuální integrace a průběžného nasazování (CI/CD) pro vaše řešení se službou Azure Stack Hub. Pomocí tohoto pracovního postupu můžete automatizovat sestavování, testování a nasazování řešení, abyste se mohli soustředit na psaní kódu. Přidáním některých dalších akcí můžete tento pracovní postup použít společně se šablonou Azure Resource Manageru ke zřízení virtuálního počítače, ověření úložiště aplikace a následnému nasazení aplikace do tohoto virtuálního počítače při každém sloučení do konkrétní větve na GitHubu. Prozatím vám tento článek pomůže zorientovat se v GitHub Actions a ve službě Azure Stack Hub.
GitHub Actions jsou pracovní postupy složené z akcí, které umožňují automatizaci přímo v úložišti kódu. Pracovní postupy můžete aktivovat událostmi v procesu vývoje GitHubu. Můžete provádět běžné úlohy automatizace DevOps, jako jsou testování, nasazení a kontinuální integrace.
Pokud chcete používat GitHub Actions se službou Azure Stack Hub, musíte použít uživatelský účet služby (SPN) s určitými požadavky. V tomto článku vytvoříte samostatně hostovaný spouštěč . GitHub umožňuje používat libovolný počítač, ke kterému může GitHub přistupovat ve službě GitHub Actions. Virtuální počítač můžete vytvořit jako spouštěč v Azure, ve službě Azure Stack Hub nebo jinde.
Tento ukázkový pracovní postup zahrnuje:
- Pokyny k vytvoření a ověření vašeho hlavního názvu služby (SPN)
- Konfigurace stroje s Windows Server 2016 Core jako samostatného spouštěče GitHub Actions pro spolupráci se službou Azure Stack Hub.
- Pracovní postup, který používá:
- Akce Přihlášení k Azure
- Akce skriptu PowerShellu
Azure Stack Hub GitHub Actions
Následující diagram znázorňuje různá prostředí a jejich vztahy.
Použití součástí samohostovaného runneru:
- Akce GitHub hostované na GitHubu
- Runner vlastnoručně hostovaný na Azure
- Azure Stack Hub
Omezení používání GitHub Actions se službou Azure Stack Hub spočívá v tom, že proces vyžaduje použití služby Azure Stack Hub připojené k webu. Pracovní postup se aktivuje v úložišti GitHub. Jako zprostředkovatele identity můžete použít Microsoft Entra ID nebo Ad FS (Active Directory Federated Services).
I když je to mimo rozsah tohoto článku, váš samostatně hostovaný spouštěč může k připojení ke službě Azure Stack Hub za bránou firewall také použít virtuální privátní síť.
Získání služebního principálu
Přihlašovací jméno služby (SPN) poskytuje přihlašovací údaje založené na rolích, aby se procesy mimo Azure mohly připojit k prostředkům a interagovat s nimi. Budete potřebovat hlavní název služby (SPN) s oprávněním přispěvatele a atributy uvedené v těchto pokynech, abyste je mohli používat s GitHub Actions.
Jako uživatel služby Azure Stack Hub nemáte oprávnění k vytvoření SPN (hlavní identifikátor služby). Budete muset vyžádat tuto zásadu od svého poskytovatele cloudových služeb. Tady jsou uvedené pokyny, abyste mohli vytvořit hlavní název služby (SPN), pokud jste operátor cloudu, nebo můžete hlavní název služby ověřit, pokud jste vývojář pomocí hlavního názvu služby (SPN) ve vašem pracovním postupu poskytovaném operátorem cloudu.
Operátor cloudu bude muset vytvořit hlavní název služby (Service Principal Name, SPN) pomocí Azure CLI.
Následující fragmenty kódu se zapisují pro počítač s Windows pomocí příkazového řádku PowerShellu s Azure CLI. Pokud používáte rozhraní příkazového řádku na počítači s Linuxem a Bash, odeberte rozšíření řádku nebo je nahraďte \.
Připravte hodnoty následujících parametrů použitých k vytvoření SPN.
Parametr Příklad Popis správce zdrojů koncových bodů "https://management.orlando.azurestack.corp.microsoft.com" Koncový bod správy prostředků. Konfigurační skladovací přípona-konkrétní bod "orlando.azurestack.corp.microsoft.com" Přípona koncového bodu pro účty úložiště. Sufix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Přípona DNS služby Key Vault. identifikátor prostředku grafu služby Active Directory koncového bodu "https://graph.windows.net/" ID prostředku Active Directory. správa endpoint-SQL https://notsupported Koncový bod správy sql serveru. Nastavte to na https://notsupportedprofil 2020-09-01-hybrid Profil, který se má použít pro tento cloud. Otevřete nástroj příkazového řádku, jako je Windows PowerShell nebo Bash, a přihlaste se. Použijte následující příkaz:
az loginPokud používáte existující prostředí, použijte příkaz
registerpro nové prostředí nebo příkazupdate. Použijte následující příkaz.az cloud register ` -n "AzureStackUser" ` --endpoint-resource-manager "https://management.<local>.<FQDN>" ` --suffix-storage-endpoint ".<local>.<FQDN>" ` --suffix-keyvault-dns ".vault.<local>.<FQDN>" ` --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" ` --endpoint-sql-management https://notsupported ` --profile 2020-09-01-hybridZískejte ID předplatného a skupinu prostředků, které chcete použít pro objekt zabezpečení služby (SPN).
Vytvořte SPN (hlavní název služby) pomocí následujícího příkazu s ID předplatného a skupinou prostředků:
az ad sp create-for-rbac --name "myApp" --role contributor ` --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} ` --sdk-authZkontrolujte výsledný objekt JSON. Objekt JSON použijete k vytvoření tajného kódu v úložišti GitHub, které obsahuje vaši akci. Objekt JSON by měl mít následující atributy:
{ "clientId": <Application ID for the SPN>, "clientSecret": <Client secret for the SPN>, "subscriptionId": <Subscription ID for the SPN>, "tenantId": <Tenant ID for the SPN>, "activeDirectoryEndpointUrl": "https://login.microsoftonline.com/", "resourceManagerEndpointUrl": "https://management.<FQDN>", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "sqlManagementEndpointUrl": "https://notsupported", "galleryEndpointUrl": "https://providers.<FQDN>:30016/", "managementEndpointUrl": "https://management.<FQDN>" }
Přidání principálu služby do úložiště
Tajné kódy GitHubu můžete použít k šifrování citlivých informací, které se mají použít ve vašich akcích. Vytvoříte tajemství, které bude obsahovat hlavní název služby (SPN), aby se akce mohly přihlásit k vaší instanci Azure Stack Hub.
Varování
GitHub doporučuje, abyste nepoužívali self-hostované běžce s veřejnými úložišti. Větvení vašeho veřejného úložiště může na vašem self-hostovaném běžci spustit nebezpečný kód vytvořením pull requestu, který v pracovním postupu spustí kód. Další informace najdete viz "Osamostatně hostovaných běžcích."
- Otevřete nebo vytvořte úložiště GitHub. Pokud potřebujete pokyny k vytvoření úložiště na GitHubu, najdete pokyny v dokumentaci k GitHubu.
- Nastavte úložiště na privátní.
- Vyberte Nastavení>Změňte viditelnost úložiště.
- Vyberte Nastavit privátní.
- Zadejte název úložiště.
- Vyberte rozumím, změňte viditelnost úložiště.
- Vyberte Nastavení.
- Vyberte tajemství.
- Vyberte Tajný kód nového úložiště.
- Pojmenujte svůj tajný
AZURE_CREDENTIALS. - Vložte objekt JSON, který představuje SPN.
- Vyberte Přidat tajný kód.
Vytvoření virtuálního počítače a instalace požadavků
Vytvořte si self-hostovaný spouštěč.
Tyto pokyny vytvoří spouštěč jako virtuální počítač s Windows v Azure. Pokud se potřebujete připojit ke službě Azure Stack Hub hostované v datacentru, můžete vyžadovat připojení VPN. Pokyny k povolení připojení najdete v části Instalace nástrojů Azure Stack Hub na vašem samohostovaném spouštěči, který může vyžadovat připojení VPN.
- Pokyny k vytvoření virtuálního počítače s Windows v Azure najdete v tématu Rychlý start: Vytvoření virtuálního počítače s Windows na webu Azure Portal. Při dodržování těchto pokynů nainstalujte Windows Server 2016 Core.
- Pokyny k vytvoření virtuálního počítače s Windows ve službě Azure Stack Hub najdete v tématu Rychlý start: Vytvoření virtuálního počítače s Windows Serverem pomocí portálu Azure Stack Hub. Při dodržování těchto pokynů nainstalujte Windows Server 2016 Core.
Pomocí vzdáleného připojení se připojte k serveru s Windows 2016 pomocí IP adresy serveru, uživatelského jména a hesla, které jste definovali při vytváření počítače.
Nainstalujte Chocolatey. Chocolatey je správce balíčků pro Windows, který můžete použít k instalaci a správě závislostí z příkazového řádku. Na příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))Nainstalujte PowerShell Core. Na příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:
choco install powershell-coreNainstalujte Azure CLI. Na příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:
choco install azure-cliNainstalujte Azure Stack Hub PowerShell. Na příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module -Name Az.BootStrapper -Force -AllowPrerelease Install-AzProfile -Profile 2020-09-01-hybrid -Force Install-Module -Name AzureStack -RequiredVersion 2.0.2-preview -AllowPrereleaseDalší informace o používání modulů Az služby Azure Stack Hub najdete v tématu Instalace modulu Az PowerShellu pro službu Azure Stack Hub.
Restartujte počítač. Na příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:
shutdown /rPřidejte stroj jako vlastní hostovaný runner do svého úložiště na GitHubu. Pokyny k přidání spouštěče v místním prostředí najdete v dokumentaci k GitHubu. Další informace najdete v tématu Přidání spouštěčů v místním prostředí.
Po dokončení ověřte, že je služba spuštěná a naslouchá vaší službě. Proveďte dvojitou kontrolu spuštěním
/run.cmdz adresáře programu.
Volitelné: Instalace nástrojů Služby Azure Stack Hub na místního spouštěče
Pokyny v tomto článku nevyžadují přístup k nástroji Azure Stack Hub Tools, ale při vývoji vlastního pracovního postupu možná budete muset tyto nástroje použít. Následující pokyny vám mohou pomoci nainstalovat nástroje na váš samostatně hostovaný běžec Windows. Další informace o nástrojích služby Azure Stack Hub najdete v tématu Stažení nástrojů služby Azure Stack Hub zGitHubu. Tyto pokyny předpokládají, že jste nainstalovali správce balíčků Chocolatey.
Nainstalujte Git.
choco install gitNa příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:
# Change directory to the root directory. cd \ # Download the tools archive. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 invoke-webrequest ` https://github.com/Azure/AzureStack-Tools/archive/az.zip ` -OutFile az.zip # Expand the downloaded files. expand-archive az.zip ` -DestinationPath . ` -Force # Change to the tools directory. cd AzureStack-Tools-azPokud potřebujete, aby se váš spouštěč připojil k vaší instanci služby Azure Stack Hub, můžete použít PowerShell. Pokyny najdete v článku Připojení ke službě Azure Stack Hub pomocí powershellového.
Vytvořte místně hostovaný spouštěč
V Dokumentaci GitHubu můžete nastavit spouštěč v místním prostředí. Spouštěč v místním prostředí může běžet na libovolném počítači, který se může připojit k GitHubu. Pokud máte v pracovním postupu automatizační úlohu, která vyžaduje rozsáhlé softwarové závislosti, specifické licenční požadavky, například USB dongle pro softwarovou licenci, nebo jiné potřeby vztahující se k danému zařízení či konkrétnímu softwaru, můžete zvolit použití samostatně hostovaného běhového prostředí. Vaším počítačem může být fyzický počítač, virtuální počítač nebo kontejner. Spouštěč můžete umístit do datacentra nebo do cloudu.
V tomto článku použijete virtuální počítač s Windows hostovaný v Azure, který bude nakonfigurovaný s konkrétními požadavky PowerShellu služby Azure Stack Hub.
Pokyny k nastavení, konfiguraci a připojení spouštěče v místním prostředí k úložišti najdete v dokumentaci GitHubuO spouštěčích v místním prostředí.
Poznamenejte si název a značky svého samohostovaného běžce. Pracovní postup v tomto článku bude vyvolán pomocí značky self-hosted.
Přidání pracovního postupu do úložiště
Vytvořte nový pracovní postup pomocí yaml v této části a vytvořte pracovní postup.
Otevřete úložiště GitHub.
Vyberte akce.
Vytvořte nový pracovní postup.
- Pokud je to váš první pracovní postup, vyberte nastavit pracovní postup vlastnoručně v části Zvolte nějakou šablonu pracovního postupu.
- Pokud máte existující pracovní postupy, vyberte Nový pracovní postup>Nastavit pracovní postup sami.
V cestě pojmenujte soubor
workflow.yml.Zkopírujte a vložte pracovní postup yml.
on: [push] env: ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' jobs: azurestack-test: runs-on: self-hosted steps: - name: Login to AzureStack with Az Powershell uses: azure/login@releases/v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} environment: 'AzureStack' enable-AzPSSession: true - name: Run Az PowerShell Script Against AzureStack uses: azure/powershell@v1 with: azPSVersion: '3.1.0' inlineScript: | hostname Get-AzContext Get-AzResourceGroup - name: Login to AzureStack with CLI uses: azure/login@releases/v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} environment: 'AzureStack' enable-AzPSSession: false - name: Run Azure CLI Script Against AzureStack run: | hostname az group list --output tableVyberte Spustit potvrzení.
Přidejte název potvrzení a volitelné podrobnosti a pak vyberte Potvrdit nový soubor.
Po spuštění akce ověřte, že byla úspěšně spuštěna.
Otevřete úložiště GitHub. Pracovní postup můžete aktivovat nahráním do úložiště.
Vyberte akce.
Vyberte název commitu v části Všechny pracovní postupy.
Vyberte název úlohy, azurestack-test.
Rozbalte oddíly a zkontrolujte návratové hodnoty příkazů PowerShellu a rozhraní příkazového řádku.
Poznámky k souboru pracovního postupu a akci:
- Pracovní postup obsahuje jednu úlohu s názvem
azurestack-test. - Push událost aktivuje pracovní postup.
- Akce používá samostatně hostovaný spouštěč, který je nastaven v úložišti, a je volána označením spouštěče v pracovním postupu řádkem:
runs on: self-hosted. - Pracovní postup obsahuje tři akce.
- První akce zavolá akci Přihlášení k Azure, která se přihlásí pomocí PowerShellu. Pomocí GitHub Actions pro Azure můžete vytvářet pracovní postupy, které můžete v úložišti nastavit pro sestavení, testování, balení, vydávání a nasazování do Azure. Tato akce používá přihlašovací údaje služby Azure Stack SPN k připojení a zahájení relace ve vašem prostředí Azure Stack Hub. Další informace o používání této akce na GitHubu, Azure Login Action, najdete na webu.
- Druhá akce používá Azure PowerShell. Tato akce používá moduly Az PowerShellu a funguje s cloudy pro státní správu i Azure Stack Hub. Po spuštění tohoto pracovního postupu zkontrolujte úlohu a ověřte, že skript shromáždil skupiny prostředků ve vašem prostředí služby Azure Stack Hub. Další informace najdete v tématu akce Azure PowerShellu.
- Třetí akce používá Azure CLI k přihlášení a připojení ke službě Azure Stack Hub za účelem shromáždění skupin prostředků. Pro další informace si přečtěte část Akce Azure CLI.
- Další informace o práci s GitHub Actions a samostatně hostovaným spouštěčem naleznete v dokumentaci GitHub Actions.
Další kroky
- Další akce najdete na webu GitHub Marketplace.
- Zjistěte více o běžných nasazeních pro Azure Stack Hub
- Informace o Použití šablon Azure Resource Manageru ve službě Azure Stack Hub
- Projděte revizi modelu hybridního cloudu DevOps, vzor DevOps