Az Azure bejelentkezési művelet használata az Azure CLI-hez és a PowerShellhez a Azure Stack Hub

Beállíthatja a GitHub műveleteket a Azure Stack Hub-példányba való bejelentkezéshez, a PowerShell futtatásához, majd egy Azure CLI-szkript futtatásához. Ezt használhatja a megoldás folyamatos integrációs, folyamatos üzembe helyezési (CI/CD) munkafolyamatának alapjaként a Azure Stack Hub. Ezzel a munkafolyamattal automatizálhatja a megoldás építését, tesztelését és üzembe helyezését, így a kódírásra összpontosíthat. Néhány további művelet hozzáadásával például használhatja ezt a munkafolyamatot egy Azure Resource Manager-sablonnal együtt egy virtuális gép üzembe helyezéséhez, egy alkalmazástár ellenőrzéséhez, majd egy alkalmazás üzembe helyezéséhez a virtuális gépen minden alkalommal, amikor egyesít egy adott ággal a GitHub. Ez a cikk jelenleg a Műveletek és műveletek GitHub Azure Stack Hub.

GitHub A műveletek olyan műveletekből állnak, amelyek közvetlenül a kódtárban teszik lehetővé az automatizálást. A munkafolyamatokat a saját fejlesztési folyamatában GitHub aktiválhatja. Elvégezhet gyakori DevOps-automatizálási feladatokat, például tesztelést, üzembe helyezést és folyamatos integrációt.

Az GitHub műveletek Azure Stack Hub szolgáltatásnév (SPN) használatával, meghatározott követelményekkel. Ebben a cikkben egy saját üzemeltetett futót fog létrehozni. GitHub bármely olyan gép használatát lehetővé teszi, amely a GitHub műveletek GitHub érhető el. Létrehozhat egy virtuális gépet (VM) futóként az Azure-ban, a Azure Stack Hub vagy máshol.

Ez a példa-munkafolyamat a következőket tartalmazza:

  • Útmutatás az SPN létrehozásához és érvényességének létrehozására.
  • Egy 2016 Windows kiszolgálói alapgép konfigurálása GitHub Actions saját üzemeltetett futóként a Azure Stack Hub.
  • Egy munkafolyamat, amely a következőt használja:
    • Az Azure Login művelet
    • A PowerShell-szkript művelet

Azure Stack Hub GitHub műveletek

Az alábbi ábrán a különböző környezetek és azok kapcsolatai láthatóak.

Azure Stack Hub GitHub-művelet A saját üzemeltetett futó használatának részei:

  • GitHub A GitHub
  • Az Azure-ban üzemeltetett saját üzemeltetett futó
  • Azure Stack Hub

A műveletek GitHub használatának Azure Stack Hub, hogy a folyamathoz egy webes Azure Stack Hub kell használni. A munkafolyamat egy új GitHub aktiválódik. Identitásszolgáltatóként használhatja Azure Active Directory (Azure AD) vagy Active Directory (AD FS) szolgáltatásokat.

Bár ez a cikk nem terjed ki a cikkre, a saját üzemeltetett futója virtuális magánhálózatot is használhat a Azure Stack Hub tűzfal mögötti hálózathoz való csatlakozáshoz.

Szolgáltatásnév lekérte

Az spN szerepköralapú hitelesítő adatokat biztosít, így az Azure-n kívüli folyamatok csatlakozhatnak az erőforrásokhoz, és interakcióba léphetnek velük. A közreműködői hozzáféréssel és az utasításokban megadott attribútumokkal egy közreműködői hozzáféréssel bíró SPN-t kell használnia a GitHub műveletekhez.

Az egyszerű Azure Stack Hub nem rendelkezik engedéllyel az egyszerű felhasználónév létrehozásához. Ezt az elvet a felhőüzemeltetőtől kell kérnie. Az itt található utasítások alapján létrehozhatja az EGYSZERŰ SZOLGÁLTATÁSN-t, ha Ön felhőüzemeltető, vagy ellenőrizheti, hogy fejlesztő-e egy felhőüzemeltető által biztosított spN-nek a munkafolyamatában.

A felhőüzemeltetőnek létre kell hoznia az spN-t az Azure CLI használatával.

Az alábbi kódrészletek egy virtuális géphez Windows PowerShell parancssor és az Azure CLI használatával íródottak. Ha a CLI-t linuxos gépen és Bash-környezetben használja, távolítsa el a sorkiterjesztést, vagy cserélje le őket egy \ -ra.

  1. Készítse elő az spN létrehozásához használt alábbi paraméterek értékeit:

    Paraméter Példa Leírás
    endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Az erőforrás-kezelési végpont.
    suffix-storage-endpoint "orlando.azurestack.corp.microsoft.com" A tárfiókok végpont-utótagja.
    suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" A Key Vault szolgáltatás DNS-utótagja.
    endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Az Active Directory erőforrás-azonosító.
    endpoint-sql-management https://notsupported Az SQL Server felügyeleti végpontja. Állítsa ezt a beállításra https://notsupported
    profil 2020-09-01-hybrid Ehhez a felhőhöz használnia kell a profilt.
  2. Nyissa meg a parancssori eszközt, például a Windows PowerShell bash eszközt, és jelentkezzen be. Használja az alábbi parancsot:

    az login
    
  3. Használja az parancsot egy új környezethez, vagy a registerupdate parancsot, ha meglévő környezetet használ. Használja az alábbi parancsot.

    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. Szerezze be az SPN-hez használni kívánt előfizetés-azonosítót és erőforráscsoportot.

  5. Hozza létre az egyszerű szolgáltatásazonosítót az alábbi paranccsal az előfizetés azonosítójával és erőforráscsoportjával:

    az ad sp create-for-rbac --name "myApp" --role contributor `
        --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} `
        --sdk-auth
    
  6. Ellenőrizze az eredményül kapott JSON-objektumot. A JSON-objektummal fogja létrehozni a titkos adatokat a GitHub a műveletet tartalmazó adattárban. A JSON-objektumnak a következő attribútumokkal kell lennie:

    {
      "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>"
    }
    

Szolgáltatásnév hozzáadása az adattárhoz

A titkos GitHub titkos kódokkal titkosítani tudja a műveletekben használható bizalmas adatokat. Létre fog hozni egy titkos adatokat az spN-hez, hogy a művelet bejelentkezhet a Azure Stack Hub példányba.

Figyelmeztetés

GitHub javasolja, hogy a nyilvános adattár nyilvános adattár-eltárolt tárházai esetén ne használjon saját üzemeltetett futókat, amelyek veszélyes kódokat futtathatnak a saját futtatott futó gépén egy olyan lekéréses kérelem létrehozásával, amely végrehajtja a kódot egy munkafolyamatban. További információ: "Tudnivalók asaját üzemeltetett futókról"

  1. Nyisson meg vagy hozzon létre GitHub adattárat. Ha útmutatásra van szüksége egy adattár létrehozásához a GitHub, a következő dokumentumban talál GitHub:.
  2. Állítsa az adattárat privátra.
    1. Válassza GépházAdattár láthatóságának módosítása lehetőséget.
    2. Válassza a Legyen privát lehetőséget.
    3. Írja be az adattár nevét.
    4. Válassza a Megértettem lehetőséget, és módosítsa az adattár láthatóságát.
  3. Válassza a Beállítások lehetőséget.
  4. Válassza a Titkos kulcsok lehetőséget.
  5. Válassza a New repository secret (Új adattár titkos adattitkja) lehetőséget. A titkos GitHub hozzáadása
  6. Nevezze el a titkos AZURE_CREDENTIALS nevére.
  7. Illessze be az SPN-t képviselő JSON-objektumot.
  8. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

A virtuális gép létrehozása és az előfeltételek telepítése

  1. Hozza létre saját üzemeltetett futóját.

    Ezek az utasítások egy futót hoznak létre Windows azure-beli virtuális gépként. Ha egy adatközpontban üzemeltetett Azure Stack Hub kell csatlakoznia a virtuális hálózathoz, VPN-kapcsolatra lehet szüksége. A kapcsolat engedélyezésével kapcsolatos utasításokat az Install Azure Stack Hub Tools on your self-hosted runner that may require a VPN connection (A Azure Stack Hub eszközök telepítése a saját üzemeltetett futón) című szakaszban találja, amely VPN-kapcsolatot igényel.

    • A virtuális gépek Azure Windows ban való létrehozásával kapcsolatos útmutatásért lásd: Rövid útmutató: Virtuális gép Windows létrehozása a Azure Portal. Ha követi ezeket az utasításokat, telepítse a Windows Server 2016 Core-t.
    • További útmutatás a virtuális gépek Windows létrehozásához Azure Stack Hub: Rövid útmutató: Windows-kiszolgálói virtuális gép létrehozása a Azure Stack Hub portálon. Ha követi ezeket az utasításokat, telepítse a Windows Server 2016 Core-t.
  2. Távoli kapcsolattal csatlakozzon a Windows 2016-os kiszolgálóhoz a gép létrehozásakor megadott kiszolgálói IP-címmel, felhasználónévvel és jelszóval.

  3. Telepítse a Chocolateyt. A Chocolatey egy csomagkezelő a Windows, amely a függőségek parancssorból való telepítésére és kezelésére használható. Egy emelt szintű PowerShell-parancssorból írja be a következőt:

    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. Telepítse a PowerShell Core-t. Egy emelt szintű PowerShell-parancssorból írja be a következőt:

    choco install powershell-core
    
  5. Telepítse az Azure CLI-t. Egy emelt szintű PowerShell-parancssorból írja be a következőt:

    choco install azure-cli
    
  6. Telepítse Azure Stack Hub PowerShellt. Egy emelt szintű PowerShell-parancssorból írja be a következőt:

    [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
    

    További információ az Azure Stack Hub Az moduljainak használatával kapcsolatban: Install PowerShell Az module for Azure Stack Hub.

  7. Indítsa újra a gépet. Egy emelt szintű PowerShell-parancssorból írja be a következőt:

    shutdown /r
    
  8. Adja hozzá a gépet saját maga által üzemeltetett futóként a GitHub adattárhoz. A saját üzemeltetett futók hozzáadására vonatkozó utasításokat a GitHub találhat. További információ: Saját üzemeltetett futók hozzáadása.

    A futó figyel

  9. Amikor végzett, ellenőrizze, hogy a szolgáltatás fut-e, és hogy figyel-e a szolgáltatásra. Ellenőrizze újra a /run.cmd futtatását a futtató könyvtárában.

Nem kötelező: Azure Stack Hub eszközök telepítése saját üzemeltetett futóra

A cikkben található utasítások nem igényelnek hozzáférést a Azure Stack Hub Toolshoz,de a saját munkafolyamat fejlesztése során szükség lehet az eszközök használatára. Az alábbi utasítások segítséget kínálnak az eszközök saját Windows futóra való telepítéséhez. További információ a Azure Stack Hub eszközökről: Download Azure Stack Hub Tools from GitHub. Ezek az utasítások feltételezik, hogy telepítette a Chocolatey csomagkezelőt.

  1. Telepítse a Gitet.

    choco install git
    
  2. Egy emelt szintű PowerShell-parancssorból írja be a következőt:

    # 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. Ha a futónak csatlakoznia kell a Azure Stack Hub-példányhoz, használhatja a PowerShellt. A PowerShell használatával való Csatlakozás Azure Stack Hub útmutatót.

Saját üzemeltetett futó létrehozása

A Docs-ban saját üzemeltetett GitHub állíthat be. Egy saját futtatású futó bármilyen gépen futtatható, amely csatlakozni tud a GitHub. Ha a munkafolyamatban olyan automatizálási feladattal rendelkezik, amely kiterjedt függőségeket, konkrét licencelési követelményeket, például szoftverlicencek USB-csatlakozóját vagy más gép- vagy szoftverspecifikus igényeket igénylő automatizálási feladattal rendelkezik, választhat saját üzemeltetőt. A gép lehet fizikai gép, virtuális gép vagy tároló. A futót az adatközpontban vagy a felhőben is el lehet helyezze.

Ebben a cikkben egy Azure-ban Windows virtuális gépet fog használni, amely adott PowerShell-Azure Stack Hub konfigurálva lesz.

A saját üzemeltetett futók beállításával, konfigurálásával és az adattárhoz való csatlakoztatásával kapcsolatos útmutatásért lásd: GitHub Docs"About self-hosted runners(Tudnivalók a saját üzemeltetett futókról)

Saját üzemeltetett futó csatlakoztatva

Jegyezze fel a saját üzemeltetett futója nevét és címkéit. A cikkben a munkafolyamat a címkével fogja self-hosted hívni.

A munkafolyamat hozzáadása az adattárhoz

Hozzon létre egy új munkafolyamatot az ebben a szakaszban található yaml használatával a munkafolyamat létrehozásához.

  1. Nyissa meg GitHub adattárat.

  2. Válassza a Műveletek lehetőséget.

  3. Hozzon létre egy új munkafolyamatot.

    • Ha ez az első munkafolyamata, a Munkafolyamat-sablon kiválasztása alatt válassza a Munkafolyamat beállítása lehetőséget.
    • Ha már van munkafolyamata, válassza azÚj munkafolyamat saját munkafolyamat beállítása lehetőséget.
  4. Az elérési úton nevezze el a workflow.yml fájlt.

  5. Másolja és illessze be a munkafolyamat yml-fájlját.

    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. Válassza a Start commit (Véglegesítés indítása) lehetőséget.

  7. Adja hozzá a véglegesítés címét és opcionálisan a részleteket, majd válassza az Új fájl véglegesítése lehetőséget.

A művelet futtatásakor ellenőrizze, hogy sikeresen lefutott-e.

  1. Nyissa meg GitHub adattárat. A munkafolyamatot úgy aktiválhatja, hogy lekultálja az adattárba.

  2. Válassza a Műveletek lehetőséget.

  3. Válassza ki a véglegesítés nevét a Minden munkafolyamat alatt.

    Véglegesítés összegzésének áttekintése

  4. Válassza ki a feladat nevét(azurestack-test).

    A véglegesítés részleteinek áttekintése

  5. Bontsa ki a szakaszokat a PowerShell- és CLI-parancsok visszaadott értékeinek áttekintésére.

Megjegyzések a munkafolyamat-fájlról és a műveletről:

  • A munkafolyamat egyetlen, nevű feladatot azurestack-test tartalmaz.
  • A leküldéses esemény aktiválja a munkafolyamatot.
  • A művelet egy saját üzemeltetett futót használ, amelyet az adattárban beállítottak, és amelyet a futó címkéje hív meg a munkafolyamatban a következő sortal: runs on: self-hosted .
  • A munkafolyamat három műveletet tartalmaz.
  • Az első művelet az Azure Login művelet hívásával jelentkezik be a PowerShell-be Az Azure-hoz elérhető GitHub Actions használatával olyan munkafolyamatokat hozhat létre, amelyek beállíthatók az adattárban az Azure-ban való létrehozáshoz, teszteléshez, csomagoláshoz, kiadáshoz és üzembe helyezéshez. Ez a művelet a Azure Stack SPN hitelesítő adataival csatlakozik, és megnyit egy munkamenetet a Azure Stack Hub környezetében. A művelet használatával kapcsolatos további információkat az Azurebejelentkezési művelet GitHub talál.
  • A második művelet a Azure PowerShell. A művelet az Az PowerShell-modulokat használja, és kormányzati és felhőalapú Azure Stack Hub is működik. A munkafolyamat futtatása után tekintse át a feladatot annak ellenőrzéséhez, hogy a szkript összegyűjtötte-e az erőforráscsoportokat a Azure Stack Hub környezetben. További információ: Azure PowerShell művelet
  • A harmadik művelet az Azure CLI használatával jelentkezik be, és csatlakozik a Azure Stack Hub az erőforráscsoportok gyűjtéséhez. További információ: Azure CLI-művelet.
  • Az Actions és a GitHub futók együttműködésével kapcsolatos további információkért tekintse meg a GitHub Actions dokumentációját.

Következő lépések