Megosztás:


Az Azure bejelentkezési művelet használata az Azure CLI-vel és a PowerShell-lel az Azure Stack Hubon

Beállíthatja a GitHub Actionst, hogy jelentkezzen be az Azure Stack Hub-példányba, futtassa a PowerShellt, majd futtasson egy Azure CLI-szkriptet. Ezt használhatja a megoldás folyamatos integrációs, folyamatos üzembe helyezési (CI/CD) munkafolyamatának alapjaként az Azure Stack Hubbal. Ezzel a munkafolyamattal automatizálhatja a megoldás összeállítását, tesztelését és üzembe helyezését, hogy a kódírásra összpontosíthasson. Ha például hozzáad néhány egyéb műveletet, akkor ezt a munkafolyamatot egy Azure Resource Manager-sablonnal együtt használhatja egy virtuális gép kiépítéséhez, egy alkalmazásadattár érvényesítéséhez, majd üzembe helyezhet egy alkalmazást az adott virtuális gépen minden alkalommal, amikor egyesít egy adott ágat a GitHubon. Ez a cikk egyelőre segít a GitHub Actions és az Azure Stack Hub megismerésében.

A GitHub Actions olyan műveletekből álló munkafolyamatok, amelyek közvetlenül a kódtárban teszik lehetővé az automatizálást. A munkafolyamatokat eseményekkel indíthatja el a GitHub fejlesztési folyamatában. Olyan gyakori DevOps-automatizálási feladatokat hajthat végre, mint a tesztelés, az üzembe helyezés és a folyamatos integráció.

Ha a GitHub Actionst az Azure Stack Hubbal szeretné használni, egy szolgáltatásazonosítót (SPN) kell használnia, amely megfelel bizonyos követelményeknek. Ebben a cikkben saját üzemeltetésű futót fog létrehozni . A GitHub lehetővé teszi, hogy minden olyan gépet használjon, amelyet a GitHub elérhet a GitHub Actionsben. Virtuális gépet (VM) hozhat létre futtatókörnyezetként az Azure-ban, az Azure Stack Hubban vagy máshol.

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

  • Útmutatás az SPN létrehozásához és érvényesítéséhez.
  • Windows 2016 Server core gép konfigurálása saját üzemeltetésű GitHub Actions-futóként az Azure Stack Hub használatához.
  • Egy munkafolyamat, amely a következőket használja:
    • Az Azure Bejelentkezési művelet
    • A PowerShell-szkriptművelet

Azure Stack Hub GitHub Actions

Az alábbi ábra a különböző környezeteket és azok kapcsolatait mutatja be.

Azure Stack Hub Github-akció A saját üzemeltetésű runner használatának részei:

  • A GitHubon üzemeltetett GitHub Actions
  • Azure-on üzemeltetett önálló runner
  • Azure Stack Hub

A GitHub Actions Azure Stack Hubbal való használatának korlátozása az, hogy a folyamathoz egy, a wehez csatlakoztatott Azure Stack Hubot kell használni. A munkafolyamat egy GitHub-adattárban aktiválódik. Identitásszolgáltatóként használhatja a Microsoft Entra-azonosítót vagy az Active Directory összevont szolgáltatásokat (AD FS).

Bár ez a cikk hatókörén kívül esik, a saját üzemeltetésű futó egy virtuális magánhálózattal is csatlakozhat az Azure Stack Hubhoz tűzfal mögött.

Szolgáltatásnév lekérése

Az SPN szerepköralapú hitelesítő adatokat biztosít, így az Azure-on kívüli folyamatok csatlakozhatnak az erőforrásokhoz és kapcsolatba léphetnek velük. A GitHub Actions használatához szüksége lesz egy, a közreműködői hozzáféréssel rendelkező SPN-re és az ebben az útmutatóban meghatározott attribútumokra.

Az Azure Stack Hub felhasználójaként nincs engedélye a Szolgáltatás Főnév létrehozására. Ezt az elvet a felhőszolgáltatótól kell kérnie. Az utasításokat itt találja, így létrehozhatja az egyszerű szolgáltatásneveket, ha Ön felhőszolgáltató, vagy érvényesítheti az egyszerű szolgáltatásneveket, ha ön fejlesztő, és a felhőszolgáltató által biztosított munkafolyamatban spN-t használ.

A felhőszolgáltatónak létre kell hoznia az SPN-t az Azure CLI használatával.

Az alábbi kódrészletek windowsos gépekre íródnak az Azure CLI-vel rendelkező PowerShell-parancssor használatával. Ha parancssori felületet használ Linux rendszerű gépen és a bash shell-t, távolítsa el a sorelhelyezést, vagy cserélje le azt egy \-ra.

  1. Készítse elő az egyszerű szolgáltatásnév létrehozásához használt alábbi paraméterek értékeit:

    Paraméter Példa Leírás
    végpont-erőforrás-kezelő "https://management.orlando.azurestack.corp.microsoft.com" Az erőforrás-kezelési végpont.
    utótag-tárhely-végpont "orlando.azurestack.corp.microsoft.com" A tárfiókok végponti utótagja.
    utótag-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" A Key Vault szolgáltatás DNS-utótagja.
    végpont-aktív-könyvtár-grafikon-erőforrás-azonosító "https://graph.windows.net/" Az Active Directory erőforrás-azonosítója.
    végpont-sql-kezelés https://notsupported Az SQL Server felügyeleti végpontja. Állítsa be https://notsupported-ra
    profil 2020-09-01-hibrid A felhőhöz használandó profil.
  2. Nyissa meg a parancssori eszközt, például a Windows PowerShellt vagy a Basht, és jelentkezzen be. Használja a következő parancsot:

    az login
    
  3. Ha új környezetet használ, alkalmazza a register parancsot, vagy ha meglévőt, a update parancsot. Használja a következő 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. Szerezd meg a szolgáltatási főnévhez használni kívánt előfizetés-azonosítót és erőforráscsoportot.

  5. Hozza létre a Szolgáltatási Principálét az alábbi parancs használatával, az előfizetés azonosítójával és az erőforráscsoporttal:

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

    {
      "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 GitHub titkos kulcsokkal titkosíthatja a műveletekhez használandó bizalmas információkat. Olyan titkos adatot hoz létre, amely tartalmazza a szolgáltatásnevét, így az eljárás bejelentkezhet az Azure Stack Hub példányába.

Figyelmeztetés

A GitHub azt javasolja, hogy ne használjon saját üzemeltetésű futókat nyilvános adattárakhoz. A nyilvános adattár villái veszélyes kódot futtathatnak a saját üzemeltetésű 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óért lásd: "A saját üzemeltetésű futókról."

  1. Nyisson meg vagy hozzon létre egy GitHub-adattárat. Ha útmutatásra van szüksége egy adattár GitHubon való létrehozásához, útmutatást talál a GitHub dokumentációjában.
  2. Állítsa be az adattárat privátra.
    1. Válassza a Beállítások>menüpontban az adattár láthatóságának megváltoztatásalehetőséget.
    2. Válassza a Tegye priváttá.
    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 Beállításoklehetőséget.
  4. Válassza Titkos kódoklehetőséget.
  5. Válassza a(z) Új tárház titkalehetőséget. GitHub Actions titkos hozzáadása
  6. Nevezd el a titkos AZURE_CREDENTIALS-t.
  7. Illessze be az SPN-t képviselő JSON-objektumot.
  8. Válassza a Titkos kód hozzáadásalehetőséget.

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

  1. Saját üzemeltetésű futtató létrehozása.

    Ezek az utasítások futót hoznak létre Windows rendszerű virtuális gépként az Azure-ban. Ha egy adatközpontban üzemeltetett Azure Stack Hubhoz kell csatlakoznia, szükség lehet VPN-kapcsolatra. A kapcsolódás engedélyezéséhez szükséges utasításokat megtalálhatja a következő szakaszban Az Azure Stack Hub Tools telepítése a saját hosztolt futóra, amely VPN-kapcsolatot igényelhet.

  2. Távoli kapcsolat használatával csatlakozhat a Windows 2016-kiszolgálóhoz a gép létrehozásakor megadott kiszolgálói IP-cím, felhasználónév és jelszó használatával.

  3. Telepítse a Chocolateyt. A Chocolatey a Windows csomagkezelője, amellyel a parancssorból telepítheti és kezelheti a függőségeket. 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 az 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-modulok használatáról: PowerShell Az modul telepítése az 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 üzemeltetésű futóként a GitHub-adattárhoz. A saját üzemeltetésű futó hozzáadására vonatkozó utasításokat a GitHub-dokumentációban találja. További információ: Saját üzemeltetésű futók hozzáadása.

    Runner hallgat

  9. Ha végzett, ellenőrizze, hogy a szolgáltatás fut-e, és figyeli-e a szolgáltatást. Kettős ellenőrzést végezz azáltal, hogy futtatod a /run.cmd parancsot a futó könyvtárából.

Nem kötelező: Az Azure Stack Hub Tools telepítése saját üzemeltetésű futóra

A cikkben szereplő utasítások nem igényelnek hozzáférést az Azure Stack Hub Tools , 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égével telepítheti az eszközöket a Windows saját üzemeltetésű futójára. További információ az Azure Stack Hub Toolsról: Azure Stack Hub Tools letöltése a GitHubról. 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 az Azure Stack Hub-példányhoz, használhatja a PowerShellt. Az utasításokat Csatlakozás az Azure Stack Hubhoz PowerShell-című cikkben találja.

Saját üzemeltetésű futó létrehozása

A GitHub Docsban beállíthat egy saját üzemeltetésű futót. A saját üzemeltetésű futók bármely olyan gépen futtathatók, amely képes csatlakozni a GitHubhoz. Dönthet úgy, hogy egy saját üzemeltetésű futót használ, ha olyan automatizálási feladat van a munkafolyamatban, amely kiterjedt függőségeket, konkrét licencelési követelményeket, például egy szoftverlicencek usb-csatlakozóját vagy más gép- vagy szoftverspecifikus igényeket igényel. A gép lehet fizikai gép, virtuális gép vagy tároló. A futót az adatközpontban vagy a felhőben helyezheti el.

Ebben a cikkben egy Azure-ban üzemeltetett Windows rendszerű virtuális gépet fog használni, amely az Azure Stack Hubra vonatkozó PowerShell-követelményekkel lesz konfigurálva.

A saját üzemeltetésű futó beállításával, konfigurálásával és az adattárhoz való csatlakoztatásával kapcsolatos utasításokért tekintse meg a GitHub Docs,"A saját üzemeltetésű futókról" című cikket.

saját üzemeltetésű futó csatlakoztatva van

Jegyezze fel a saját üzemeltetésű futó nevét és címkéjét. A cikkben szereplő munkafolyamat a self-hostedcímkével hívja meg.

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 a GitHub-adattárat.

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

  3. Hozzon létre egy új munkafolyamatot.

    • Ha ez az első munkafolyamata, válassza saját maga állítsa be a munkafolyamatot, a Munkafolyamat-sablon kiválasztásaterületen.
    • Ha már rendelkezik munkafolyamatokkal, válassza Új munkafolyamat>Munkafolyamat beállítása saját maga.
  4. Az útvonalon nevezze el a fájlt workflow.yml.

  5. Másolja és illessze be a munkafolyamat yml-é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 Véglegesítés indításalehetőséget.

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

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

  1. Nyissa meg a GitHub-adattárat. A munkafolyamatot az adattárba való leküldéssel indíthatja el.

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

  3. Válassza ki a véglegesítés nevét a Minden munkafolyamatterületen.

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

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

    Véglegesítés részleteinek áttekintése

  5. Bontsa ki a szakaszokat a PowerShell- és CLI-parancsok visszatérési értékeinek áttekintéséhez.

Megjegyzések a munkafolyamat-fájlhoz és a művelethez:

  • A munkafolyamat egyetlen, azurestack-testnevű feladatot tartalmaz.
  • Egy leküldéses esemény aktiválja a munkafolyamatot.
  • A művelet egy önállóan üzemeltetett futtatókörnyezetet használ, amely az adattárban került beállításra, és a futtatókörnyezet címkéje meghívva van a munkafolyamatban a következő sorral: runs on: self-hosted.
  • A munkafolyamat három műveletet tartalmaz.
  • Az első művelet az Azure Bejelentkezési művelet meghívásával bejelentkezik a PowerShell segítségével. Az Azure-hoz készült GitHub Actions használatával munkafolyamatokat hozhat létre, amelyeket az adattárában állíthat be építéshez, teszteléshez, csomagoláshoz, kiadáshoz és üzembe helyezéshez az Azure-ba. Ez a művelet az Azure Stack SPN-hitelesítő adataival csatlakozik és megnyit egy munkamenetet az Azure Stack Hub-környezethez. A művelet használatáról további információt a GitHubon talál, Az Azure Bejelentkezési művelet.
  • A második művelet az Azure PowerShellt használja. A művelet az Az PowerShell-modulokat használja, és a Government és az Azure Stack Hub felhőkkel 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 az Azure Stack Hub-környezetben. További információ: Azure PowerShell Action
  • A harmadik művelet az Azure CLI használatával jelentkezik be és csatlakozik az Azure Stack Hubhoz az erőforráscsoportok gyűjtéséhez. További információ: Azure CLI-művelet.
  • A GitHub Actions és a saját üzemeltetésű futó használatával kapcsolatos további információkért tekintse meg a GitHub Actions dokumentációját.

Következő lépések