Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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.
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.
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-raprofil 2020-09-01-hibrid A felhőhöz használandó profil. 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 loginHa új környezetet használ, alkalmazza a
registerparancsot, vagy ha meglévőt, aupdateparancsot. 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-hybridSzerezd meg a szolgáltatási főnévhez használni kívánt előfizetés-azonosítót és erőforráscsoportot.
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-authEllenő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."
- 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.
- Állítsa be az adattárat privátra.
- Válassza a Beállítások>menüpontban az adattár láthatóságának megváltoztatásalehetőséget.
- Válassza a Tegye priváttá.
- Írja be az adattár nevét.
- Válassza a Megértettem lehetőséget, és módosítsa az adattár láthatóságát.
- Válassza Beállításoklehetőséget.
- Válassza Titkos kódoklehetőséget.
- Válassza a(z) Új tárház titkalehetőséget.
hozzáadása - Nevezd el a titkos
AZURE_CREDENTIALS-t. - Illessze be az SPN-t képviselő JSON-objektumot.
- 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
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.
- Windows rendszerű virtuális gép Azure-beli létrehozásáról a Rövid útmutató: Windows rendszerű virtuális gép létrehozása az Azure portálon. Az utasításokat követve telepítse a Windows Server 2016 Core-t.
- A Windows rendszerű virtuális gépek Azure Stack Hubban való létrehozásával kapcsolatos útmutatásért tekintse meg rövid útmutatót: Windows server rendszerű virtuális gép létrehozása az Azure Stack Hub portállal. Az utasításokat követve telepítse a Windows Server 2016 Core-t.
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.
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'))Telepítse a PowerShell Core-t. Egy emelt szintű PowerShell-parancssorból írja be a következőt:
choco install powershell-coreTelepítse az Azure CLI-t. Egy emelt szintű PowerShell-parancssorból írja be a következőt:
choco install azure-cliTelepí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 -AllowPrereleaseTovábbi információ az Azure Stack Hub Az-modulok használatáról: PowerShell Az modul telepítése az Azure Stack Hub.
Indítsa újra a gépet. Egy emelt szintű PowerShell-parancssorból írja be a következőt:
shutdown /rAdja 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.
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.cmdparancsot 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.
Telepítse a Gitet.
choco install gitEgy 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-azHa 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.
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.
Nyissa meg a GitHub-adattárat.
Válassza a Műveleteklehetőséget.
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.
Az útvonalon nevezze el a fájlt
workflow.yml.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 tableVálassza Véglegesítés indításalehetőséget.
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.
Nyissa meg a GitHub-adattárat. A munkafolyamatot az adattárba való leküldéssel indíthatja el.
Válassza a Műveleteklehetőséget.
Válassza ki a véglegesítés nevét a Minden munkafolyamatterületen.
Válassza ki a feladat nevét, azurestack-test.
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
- Keresse meg a további műveleteket a GitHub Marketplace-ban.
- Az Azure Stack Hub gyakori üzembe helyezésének ismertetése
- További információ Azure Resource Manager-sablonok használatáról az Azure Stack Hub
- Tekintse át a DevOps hibrid felhőmintát, DevOps-mintát