Az Azure-webalkalmazás üzembe helyezési műveletének használata Azure Stack Hub

Az Actions GitHub állíthat be egy webalkalmazás üzembe helyezéséhez a Azure Stack Hub példányában. Ez lehetővé teszi az alkalmazás folyamatos integrációjának és üzembe helyezésének beállítását. Ez a cikk segítséget ad az automatikus üzembe helyezés üzembe helyezéséhez a GitHub és Azure Stack Hub. Létre fog hozni egy webalkalmazást, és a közzétételi profillal fogja létrehozni az alkalmazást szolgáltató webalkalmazást.

GitHub műveletek olyan műveletekből álló munkafolyamatok, 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. Olyan gyakori DevOps-automatizálási feladatokat állíthat be, mint a tesztelés, az üzembe helyezés és a folyamatos integráció.

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

  • A szolgáltatásnév (SPN) létrehozására és létrehozására vonatkozó utasítások.
  • Útmutató a webalkalmazás-közzétételi profil létrehozásához
  • Futásidő-specifikus munkafolyamat hozzáadása
  • Egyező munkafolyamat hozzáadása a webalkalmazás üzembe helyezési folyamatával

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. Szüksége lesz egy közreműködői hozzáféréssel bíró SPN-re, valamint az utasításokban megadott attribútumra 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 utasításokat itt használhatja, így ön felhőüzemeltetőként létrehozhatja az egyszerű szolgáltatás egyszerű szolgáltatását. Vagy ha Ön fejlesztő, ellenőrizheti a felhőüzemeltető által biztosított SPN-t.

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

A következő kódrészletek egy virtuális géphez Windows PowerShell parancssor és az Azure CLI használatával. 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 \ -re.

  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-felügyeleti 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 dns-utótag.
    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 Basht, és jelentkezzen be. Használja az alábbi parancsot:

    az login
    
  3. Használja az parancsot egy új környezethez, vagy a parancsot, ha meglévő registerupdate 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 spN-t a következő 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
    

    Ha nem rendelkezik felhőüzemeltetői jogosultságokkal, a felhőszolgáltató által biztosított SPN-sel is bejelentkezhet. Szüksége lesz az ügyfél-azonosítóra, a titkos kódra és a bérlőazonosítóra. Ezekkel az értékekkel az alábbi Azure CLI-parancsokkal hozhatja létre a JSON-objektumot, amely titkos GitHub a tárházhoz.

    az login --service-principal -u "<client-id>" -p "<secret>" --tenant "<tenant-ID>" --allow-no-subscriptions
    az account show --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>"
    }
    

A webalkalmazás közzétételi profiljának létrehozása

Nyissa meg a Webalkalmazás létrehozása panelt

  1. Jelentkezzen be a Azure Stack Hub portálra.
  2. Válassza az Erőforrás létrehozása Web és mobilWebalkalmazásban lehetőséget. Webalkalmazás létrehozása a Azure Stack Hub

A webalkalmazás létrehozása

  1. Válassza ki az előfizetését.
  2. Hozzon létre vagy válasszon ki egy erőforráscsoportot.
  3. Írja be az alkalmazás nevét. Az alkalmazás neve megjelenik az alkalmazás URL-címében, például: yourappname.appservice.<region>.<FQDN>
  4. Válassza ki az alkalmazás futásidejű vermét. A futásidőnek meg kell egyeznie a közzétételi profil célként használt munkafolyamattal.
  5. Válassza ki azt az operációs rendszert (OS), amely a futásidőt és az alkalmazást fogja futtatni.
  6. Válassza ki vagy írja be a régiót a Azure Stack Hub számára.
  7. Válassza ki a csomagokat a Azure Stack Hub, a régió és az alkalmazás operációs rendszerének alapján.
  8. Válassza a Felülvizsgálat és létrehozás lehetőséget.
  9. Tekintse át a webalkalmazást. Válassza a Létrehozás lehetőséget. Webalkalmazás áttekintése a Azure Stack Hub
  10. Válassza az Erőforrás megnyitása lehetőséget. Közzétételi profil le Azure Stack Hub
  11. Válassza a Közzétételi profil lekérte lehetőséget. A közzétételi profil letölti a-t, és a neve <yourappname>.PublishSettings . A fájl tartalmaz egy XML-fájlt a webalkalmazás célértékeivel.
  12. Tárolja el a közzétételi profilt, hogy hozzáférjen, amikor létrehozza a titkos adatokat az adattárhoz.

Titkos kulcsok hozzáadása az adattárhoz

A titkos GitHub titkos kulcsokkal titkosítani tudja a műveletekben használható bizalmas adatokat. Létre fog hozni egy titkos adatokat az spN-hez, valamint egy másik titkos adatokat a webalkalmazás közzétételi profiljához, hogy a művelet bejelentkezhet az Azure Stack Hub-példányba, és felépítse az alkalmazást a webalkalmazás célértékéhez.

  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-ban, a következő dokumentumban talál GitHub útmutatót:.
  2. Válassza a Beállítások lehetőséget.
  3. Válassza a Titkos kulcsok lehetőséget.
  4. Válassza az Új adattár titkos adattitkának lehetőséget. Titkos GitHub hozzáadása
  5. A titkos nak nevezze el AZURE_CREDENTIALS a et.
  6. Illessze be az SPN-t képviselő JSON-objektumot.
  7. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.
  8. Válassza az Új adattár titkos adattitkának lehetőséget.
  9. A titkos nak nevezze el AZURE_WEBAPP_PUBLISH_PROFILE a et.
  10. Nyissa meg a fájlt egy szövegszerkesztőben, majd másolja és illessze be az XML-t az <yourappname>.PublishSettings adattár titkos kódtárába.
  11. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

Futásidejű munkafolyamat hozzáadása

  1. Válasszon egy sablont a webalkalmazás-futtatás táblája közül.

    Futtatókörnyezet Sablon
    DotNet dotnet.yml
    NodeJS node.yml
    Java java_jar.yml
    Java java_war.yml
    Python python.yml
    PHP php.yml
    Docker docker.yml
  2. Helyezze a GitHub munkafolyamat könyvtárába a projekt adattárában: A munkafolyamat-könyvtár .github/workflows/<runtime.yml> két munkafolyamatot fog tartalmazni.

A webalkalmazás üzembe helyezési műveletének hozzáadása

Hozzon létre egy második munkafolyamatot az ebben a szakaszban található yaml használatával. Ebben a példában egy Python-webalkalmazást helyez üzembe. Ki kell választania egy beállítási műveletet a munkafolyamata alapján. A különböző futásidőkre vonatkozó műveletek beállításához hivatkozásokat talál a táblázatban,a különböző futásidők telepítési műveleteit pedig a művelet létrehozásához használt lépések után.

Példa GitHub munkafolyamatra

  1. Nyissa meg GitHub tárházat. Ha még nem adott hozzá webalkalmazás-erőforrásokat, adja hozzá őket most. Ebben a példában a Python Flask mintaalkalmazást Hello World, és hozzáadtam a Python , és app.pyrequirements.txt fájlokat.

    Az Azure Stack Hub

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

  3. Válassza az Új munkafolyamat lehetőséget.

    • Ha ez az első munkafolyamata, válassza a Munkafolyamat-sablon kiválasztása elem alatt a Munkafolyamat beállítása lehetőséget.
    • Ha már van munkafolyamata, válassza az Új munkafolyamatSajá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.

    # .github/workflows/worfklow.yml
    on: push
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
        # checkout the repo
        - name: 'Checkout Github Action' 
          uses: actions/checkout@master
    
        - name: Setup Python 3.6
          uses: actions/setup-node@v1
          with:
            python-version: '3.6'
        - name: 'create a virtual environment and install dependencies'
          run: |
            python3 -m venv .venv
            source .venv/bin/activate
            pip install -r requirements.txt
    
        - name: 'Run Azure webapp deploy action using publish profile credentials'
          uses: azure/webapps-deploy@v2
          with:
            app-name: <YOURAPPNAME>
            publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
    
  6. A workflow.yaml fájlban frissítse <YOURAPPNAME> az alkalmazást az alkalmazás nevével.

  7. Válassza a Start commit (Véglegesítés indítása) lehetőséget.

  8. 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.

Beállítási műveletek különböző futásidejű futtatáshoz

Ha alkalmazáskódot hoz létre egy adott nyelvalapú környezetben, használja a beállítási műveleteket:

Futtatókörnyezet Műveletek beállítása
DotNet A DotNet beállítása
NodeJS Csomópont beállítása
Java A Java beállítása
Python A Python beállítása
Docker docker-login

Ha a bejelentkezési művelet kész, a munkafolyamat következő műveletkészlete olyan feladatokat hajthat végre, mint például a tárolók létrehozása, címkézése és lekerezése. További információért tekintse meg az Azure-webalkalmazás-művelet dokumentációját.

Az üzembe helyezés aktiválása

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

  1. Nyissa meg GitHub tárházat. A munkafolyamatot az adattárba lekért lekért eseményindítóval aktiválhatja.
  2. Válassza a Műveletek lehetőséget.
  3. Válassza ki a véglegesítés nevét a Minden munkafolyamat alatt. Mindkét munkafolyamat naplózza az állapotát. A művelet állapotának GitHub áttekintése
  4. Válassza ki az üzemelő példány feladatának .github/workflows/workflow.yml nevét.
  5. Bontsa ki a szakaszokat a munkafolyamat-műveletek visszaadott értékeinek áttekintésére. Keresse meg az üzembe helyezett webalkalmazás URL-címét. Keresse meg Azure Stack Hub webalkalmazás URL-címét
  6. Nyisson meg egy webböngészőt, és töltse be az URL-címet.

Következő lépések