Sdílet prostřednictvím


Použití akce přihlášení k Azure pomocí Azure CLI a PowerShellu ve službě Azure Stack Hub

Můžete nastavit GitHub Actions pro přihlášení k instanci služby Azure Stack Hub, spuštění PowerShellu a následné 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. Například přidáním některých dalších akcí můžete tento pracovní postup použít spolu se šablonou Azure Resource Manager ke zřízení virtuálního počítače, ověření úložiště aplikace a následnému nasazení aplikace na tento virtuální počítač pokaždé, když sloučíte s konkrétní větví na GitHubu. Prozatím vám tento článek pomůže zorientovat se s GitHub Actions a službou 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 je testování, nasazování a kontinuální integrace.

Pokud chcete používat GitHub Actions se službou Azure Stack Hub, musíte použít instanční objekt (SPN) se specifickými požadavky. V tomto článku vytvoříte běžec v místním prostředí. GitHub umožňuje používat jakýkoli počítač, který je dostupný z GitHubu ve vašem GitHub Actions. Virtuální počítač můžete vytvořit jako běžec v Azure, ve službě Azure Stack Hub nebo jinde.

Tento ukázkový pracovní postup zahrnuje:

  • Pokyny k vytvoření a ověření hlavního názvu služby (SPN)
  • Konfigurace počítače s jádrem Windows Serveru 2016 jako GitHub Actions místního systému pro práci se službou Azure Stack Hub.
  • Pracovní postup, který používá:
    • Akce Přihlášení k Azure
    • Akce skriptu PowerShellu

GitHub Actions služby Azure Stack Hub

Následující diagram znázorňuje různá prostředí a jejich vztahy.

Akce GitHubu ve službě Azure Stack Hub Části používání místního runneru:

  • GitHub Actions hostované na GitHubu
  • Runner v místním prostředí hostovaný v 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 id Microsoft Entra i službu AD FS (Active Directory Federated Services).

I když je to mimo rozsah tohoto článku, váš místní runner může také použít virtuální privátní síť pro připojení ke službě Azure Stack Hub za bránou firewall.

Získání instančního objektu

Hlavní název služby (SPN) poskytuje přihlašovací údaje na základě role, aby se procesy mimo Azure mohly připojit k prostředkům a pracovat s nimi. Abyste mohli používat s GitHub Actions, budete potřebovat hlavní název služby s přístupem přispěvatele a atributy uvedené v těchto pokynech.

Jako uživatel služby Azure Stack Hub nemáte oprávnění k vytvoření hlavního názvu služby (SPN). O tento princip budete muset požádat operátora cloudu. Pokyny jsou tady uvedené, abyste mohli vytvořit hlavní název služby (SPN), pokud jste operátor cloudu, nebo můžete hlavní název služby (pokud jste vývojář) ověřit pomocí hlavního názvu služby (SPN) v pracovním postupu poskytovaném operátorem cloudu.

Operátor cloudu bude muset vytvořit hlavní název služby (SPN) pomocí Azure CLI.

Následující fragmenty kódu se zapisují pro počítač s Windows pomocí příkazového řádku PowerShellu a Azure CLI. Pokud používáte rozhraní příkazového řádku na počítači s Linuxem a prostředí Bash, odeberte rozšíření řádku nebo je \nahraďte za .

  1. Připravte hodnoty následujících parametrů použitých k vytvoření hlavního názvu služby (SPN):

    Parametr Příklad Description
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Koncový bod správy prostředků.
    Přípona koncového bodu úložiště "orlando.azurestack.corp.microsoft.com" Přípona koncového bodu pro účty úložiště.
    suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Přípona dns služby Key Vault.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Identifikátor prostředku služby Azure Active Directory.
    koncový bod – sql – správa https://notsupported Koncový bod správy sql Serveru. Nastavte tuto možnost na https://notsupported
    profil 2020-09-01-hybrid Profil, který se má použít pro tento cloud.
  2. Otevřete nástroj příkazového řádku, například Windows PowerShell nebo Bash, a přihlaste se. Použijte následující příkaz:

    az login
    
  3. register Použijte příkaz pro nové prostředí nebo příkaz, update pokud používáte existující prostředí. 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-hybrid
    
  4. Získejte ID předplatného a skupinu prostředků, které chcete použít pro hlavní název služby (SPN).

  5. Pomocí následujícího příkazu vytvořte hlavní název služby (SPN) 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-auth
    
  6. Zkontrolujte 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í instančního objektu 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 tajný kód, který bude obsahovat váš hlavní název služby (SPN), aby se akce mohl přihlásit k vaší instanci služby Azure Stack Hub.

Upozornění

GitHub doporučuje nepoužívat spouštěče v místním prostředí s veřejnými úložišti Forky vašeho veřejného úložiště, které by mohly na počítači s spouštěčem v místním prostředí spouštět nebezpečný kód vytvořením žádosti o přijetí změn, která spustí kód v pracovním postupu. Další informace najdete v tématu "O běžcích v místním prostředí".

  1. Otevřete nebo vytvořte úložiště GitHub. Pokud potřebujete poradit s vytvořením úložiště na GitHubu, najdete pokyny v dokumentaci ke GitHubu.
  2. Nastavte úložiště na privátní.
    1. Vyberte Nastavení>Změnit viditelnost úložiště.
    2. Vyberte Nastavit jako soukromé.
    3. Zadejte název úložiště.
    4. Vyberte Rozumím a změňte viditelnost úložiště.
  3. Vyberte Nastavení.
  4. Vyberte Tajné kódy.
  5. Vyberte Nový tajný klíč úložiště. Přidání tajného kódu GitHub Actions
  6. Pojmenujte svůj tajný kód AZURE_CREDENTIALS.
  7. Vložte objekt JSON, který představuje váš hlavní název služby (SPN).
  8. Vyberte Add secret (Přidat tajný kód).

Vytvoření virtuálního počítače a instalace požadavků

  1. Vytvořte si běžce v místním prostředí.

    Tyto pokyny vytvoří v Azure runner jako virtuální počítač s Windows. 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 Tools do místního runneru , který může vyžadovat připojení VPN.

  2. Pomocí vzdáleného připojení se připojte k serveru Windows 2016 pomocí IP adresy serveru, uživatelského jména a hesla, které jste definovali při vytváření počítače.

  3. 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. V 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'))
    
  4. Nainstalujte PowerShell Core. V příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:

    choco install powershell-core
    
  5. Nainstalujte Azure CLI. V příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:

    choco install azure-cli
    
  6. Nainstalujte PowerShell služby Azure Stack Hub. V 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 -AllowPrerelease
    

    Další 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.

  7. Restartujte počítač. V příkazovém řádku PowerShellu se zvýšenými oprávněními zadejte:

    shutdown /r
    
  8. Přidejte počítač jako běžce v místním prostředí do úložiště GitHub. Pokyny k přidání místního runneru najdete v dokumentaci k GitHubu. Další informace najdete v tématu Přidání běžců v místním prostředí.

    Runner naslouchá

  9. Až budete hotovi, ověřte, že je služba spuštěná a naslouchá vaší službě. Pečlivě zkontrolujte spuštěním /run.cmd z adresáře runnera.

Volitelné: Instalace nástrojů Azure Stack Hubu do místního runneru

Pokyny v tomto článku nevyžadují přístup k nástrojům Služby Azure Stack Hub, 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 můžou pomoct s instalací nástrojů do místního runneru windows. Další informace o nástrojích Azure Stack Hub Najdete v tématu Stažení nástrojů Azure Stack Hub z GitHubu. Tyto pokyny předpokládají, že jste nainstalovali správce balíčků Chocolatey.

  1. Nainstalujte Git.

    choco install git
    
  2. V 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-az
    
  3. Pokud potřebujete, aby se správce připojil k 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í PowerShellu.

Vytvoření místního runneru

Runner v místním prostředí můžete nastavit v dokumentaci GitHubu. Běžec v místním prostředí může běžet na libovolném počítači, který se může připojit ke GitHubu. Pokud máte v pracovním postupu úlohu automatizace, která vyžaduje rozsáhlé závislosti, konkrétní licenční požadavky, jako je hardwarový klíč USB pro softwarovou licenci, nebo jiné potřeby specifické pro počítač nebo software, můžete použít místní runner. Vaším počítačem může být fyzický počítač, virtuální počítač nebo kontejner. Běžce 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 požadavky na PowerShell specifické pro Azure Stack Hub.

Pokyny k nastavení, konfiguraci a připojení místního runneru k úložišti najdete v dokumentaci Ke GitHubu v tématu Informace o běžcích v místním prostředí.

Připojený běžec v místním prostředí

Poznamenejte si jméno a značky běžce v místním prostředí. Pracovní postup v tomto článku ho bude volat pomocí značky self-hosted.

Přidání pracovního postupu do úložiště

Pomocí yaml v této části vytvořte nový pracovní postup.

  1. Otevřete úložiště GitHub.

  2. Vyberte Akce.

  3. Vytvořte nový pracovní postup.

    • Pokud se jedná o váš první pracovní postup, vyberte v části Zvolit šablonu pracovního postupu možnost Nastavit pracovní postup sami.
    • Pokud máte existující pracovní postupy, vyberte Nový pracovní postup>Nastavit pracovní postup sami.
  4. V cestě pojmenujte soubor workflow.yml.

  5. 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 table
    
  6. Vyberte Start commit (Spustit zápis).

  7. Přidejte název potvrzení a volitelné podrobnosti a pak vyberte Potvrdit nový soubor.

Po spuštění akce ověřte, že se úspěšně spustila.

  1. Otevřete úložiště GitHub. Pracovní postup můžete aktivovat tak, že ho nasdílíte do úložiště.

  2. Vyberte Akce.

  3. V části Všechny pracovní postupy vyberte název potvrzení.

    Souhrn potvrzení zkontrolovat

  4. Vyberte název úlohy azurestack-test.

    Kontrola podrobností o potvrzení

  5. Rozbalte oddíly a zkontrolujte návratové hodnoty pro příkazy 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.
  • Událost nabízeného oznámení aktivuje pracovní postup.
  • Akce používá běžce v místním prostředí, který je nastavený v úložišti a je volána popiskem běžce v pracovním postupu s řádkem: runs on: self-hosted.
  • Pracovní postup obsahuje tři akce.
  • První akce volá akci Přihlášení k Azure pro přihlášení pomocí PowerShellu S GitHub Actions pro Azure můžete vytvořit pracovní postupy, které můžete ve svém úložišti nastavit pro sestavení, testování, zabalení, vydání a nasazení do Azure. Tato akce používá vaše přihlašovací údaje hlavního názvu služby (SPN) služby Azure Stack k připojení a otevření relace k prostředí služby Azure Stack Hub. Další informace o použití této akce najdete v tématu Akce přihlášení k Azure na GitHubu.
  • Druhá akce používá Azure PowerShell. Akce používá moduly Az PowerShellu a funguje s cloudy Government 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 PowerShell.
  • Třetí akce používá Azure CLI k přihlášení a připojení ke službě Azure Stack Hub za účelem shromažďování skupin prostředků. Další informace najdete v tématu Akce Azure CLI.
  • Další informace o práci s GitHub Actions a místním runnerem najdete v dokumentaci k GitHub Actions.

Další kroky