Oktatóanyag: Üzembe helyezés Azure-alkalmazás szolgáltatásban a Jenkins és az Azure CLI használatával

Fontos

Számos Azure-szolgáltatás rendelkezik Jenkins beépülő modulokkal. Ezen beépülő modulok némelyike 2024. február 29-étől nem támogatott. A Jenkins azure-szolgáltatásokkal való integrálásának jelenleg az Azure CLI az ajánlott módja. További információ: Jenkins beépülő modulok az Azure-hoz.

Ha Java-webalkalmazást szeretne üzembe helyezni az Azure-ban, használhatja az Azure CLI-t egy Jenkins-folyamatban. Ebben az oktatóanyagban a következő feladatokat hajtja végre:

  • Jenkins virtuális gép létrehozása
  • A Jenkins konfigurálása
  • Webalkalmazás létrehozása az Azure-ban
  • GitHub-adattár előkészítése
  • Jenkins-folyamat létrehozása
  • A folyamat futtatása és a webalkalmazás ellenőrzése

Előfeltételek

  • Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.

A Jenkins konfigurálása

Az alábbi lépések bemutatják, hogyan telepíthető a szükséges Java JDK és Maven a Jenkins-vezérlőre:

  1. Jelentkezzen be a Jenkins-vezérlőbe SSH használatával.

  2. Töltse le és telepítse az Azure-hoz készült OpenJDK Azul Zulu-buildet egy apt-get adattárból:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
    sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main"
    sudo apt-get -q update
    sudo apt-get -y install zulu-8-azure-jdk
    
  3. Futtassa a következő parancsot a Maven telepítéséhez:

    sudo apt-get install -y maven
    

Azure-szolgáltatásnév hozzáadása Jenkins-hitelesítő adatokhoz

Az alábbi lépések bemutatják, hogyan adhatja meg az Azure-hitelesítő adatokat:

  1. Győződjön meg arról, hogy a Hitelesítő adatok beépülő modul telepítve van.

  2. A Jenkins-irányítópulton válassza a Hitelesítő adatok – Rendszer lehetőséget>>.

  3. Válassza ki a globális hitelesítő adatokat (nem korlátozott).

  4. Válassza a Hitelesítő adatok hozzáadása lehetőséget a Microsoft Azure-szolgáltatásnév hozzáadásához. Győződjön meg arról, hogy a hitelesítő adatok típusa felhasználónév jelszóval , és adja meg a következő elemeket:

    • Felhasználónév: Szolgáltatásnév appId
    • Jelszó: Szolgáltatásnév password
    • Azonosító: Hitelesítő azonosító (például AzureServicePrincipal)

Azure App Service létrehozása Java-webalkalmazás üzembe helyezéséhez

Az az appservice plan create használatával hozzon létre egy Azure-alkalmazás szolgáltatáscsomagot az FR Enterprise kiadás tarifacsomaggal:

az appservice plan create \
    --name <app_service_plan> \ 
    --resource-group <resource_group> \
    --sku FREE

Főbb pontok:

  • Az App Service-csomag határozza meg az alkalmazások üzemeltetéséhez használt fizikai erőforrásokat.
  • Az appservice-csomaghoz rendelt összes alkalmazás megosztja ezeket az erőforrásokat.
  • Az Appservice-csomagok lehetővé teszik a költségek megtakarítását több alkalmazás üzemeltetése esetén.

Azure-webalkalmazás létrehozása

Az az webapp create használatával webalkalmazás-definíciót hozhat létre az myAppServicePlan App Service-csomagban.

az webapp create \
    --name <app_name> \ 
    --resource-group <resource_group> \
    --plan <app_service_plan>

Főbb pontok:

  • A webalkalmazás-definíció egy URL-címet biztosít, amelyen keresztül az alkalmazás elérhető, valamint több beállítást is konfigurál a kód az Azure-ban történő üzembe helyezéséhez.
  • Cserélje le a <app_name> helyőrzőt egy egyedi alkalmazásnévvel.
  • Az alkalmazásnév a webalkalmazás alapértelmezett tartománynevének része. Ezért a névnek egyedinek kell lennie az Azure összes alkalmazásában.
  • Leképezhet egy egyéni tartománynév-bejegyzést a webalkalmazásához, mielőtt elérhetővé teszi a felhasználók számára.

A Java konfigurálása

Az appservice webkonfiguráció frissítésével állítsa be az alkalmazás Java-futtatókörnyezeti konfigurációját:

az webapp config set \ 
    --name <app_name> \
    --resource-group <resource_group> \ 
    --java-version 1.8 \ 
    --java-container Tomcat \
    --java-container-version 8.0

GitHub-adattár előkészítése

  1. Nyissa meg az Azure-hoz készült egyszerű Java-webalkalmazást bemutató adattárat.

  2. Az Elágazáshoz gombot választva elágaztathatja az adattárat a saját GitHub-fiókjába.

  3. Nyissa meg a Jenkinsfile fájlt a fájl nevére kattintva.

  4. A fájl szerkesztéséhez válassza a ceruza ikont.

  5. Frissítse az előfizetés azonosítóját és a bérlőazonosítót.

      withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>',
            'AZURE_TENANT_ID=<tenant_id>']) 
    
  6. Frissítse a webalkalmazás erőforráscsoportját és nevét a 22. és a 23. sorban.

    def resourceGroup = '<resource_group>'
    def webAppName = '<app_name>'
    
  7. A hitelesítő adatok azonosítójának frissítése a Jenkins-példányban

    withCredentials([usernamePassword(credentialsId: '<service_princial>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
    

Jenkins-folyamat létrehozása

Jenkins-folyamat létrehozásához tegye a következőket:

  1. Nyissa meg a Jenkinst egy webböngészőben.

  2. Válassza a New Item (Új elem) lehetőséget.

  3. Adja meg a feladat nevét.

  4. Válassza a Folyamat lehetőséget.

  5. Kattintson az OK gombra.

  6. Válassza a Folyamat lehetőséget.

  7. A Definition (Definíció) értékeként válassza a Pipeline script from SCM (Folyamatszkript SCM-ből) lehetőséget.

  8. Az SCM értékeként válassza a Git lehetőséget.

  9. Adja meg az elágaztatott adattár GitHub-URL-címét: https:\<forked_repo\>.git

  10. Select Save

A folyamat tesztelése

  1. Ugrás a létrehozott folyamatra

  2. Válassza a Build now (Build now) lehetőséget

  3. A build befejezése után válassza a Konzolkimenet lehetőséget a build részleteinek megtekintéséhez.

Webalkalmazás ellenőrzése

Ellenőrizze, hogy a WAR-fájl sikeresen üzembe lett-e helyezve a webalkalmazásban:

  1. Keresse meg a következő URL-címet: http://&lt;app_name>.azurewebsites.net/api/calculator/ping

  2. A következőhöz hasonló szövegnek kell megjelennie:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  3. Keresse meg a következő URL-címet (helyettesítse az x> és <az y> értéket <két összegzendő értékkel): http://< app_name.azurewebsites.net/api/calculator/add?x>=<x>&y=<y>.

    Example of running the demo add

Üzembe helyezés a linuxos Azure-alkalmazás szolgáltatásban

Az App Service natív módon is üzemeltethet webalkalmazásokat Linuxon támogatott alkalmazásveremekhez. Egyéni Linux-tárolókat is futtathat (más néven Web App for Containers).)

Módosíthatja a szkriptet úgy, hogy linuxos Azure-alkalmazás szolgáltatásban legyen üzembe helyezve. A Linuxon futó App Service támogatja a Dockert. Ezért olyan Docker-fájlt kell megadnia, amely szolgáltatás-futtatókörnyezettel csomagolja a webalkalmazást egy Docker-rendszerképbe. A beépülő modul létrehozza a lemezképet, leküldi egy Docker-beállításjegyzékbe, és üzembe helyezi a rendszerképet a webalkalmazásban.

  1. Tekintse meg az egyéni szoftverek migrálását Azure-alkalmazás szolgáltatásba egy egyéni tároló használatával egy Azure-alkalmazás-szolgáltatás linuxos és azure-beli tárolóregisztrációs adatbázis létrehozásához.

        az group create --name myResourceGroup2 --location westus2
        az acr create --name myACRName --resource-group myResourceGroup2 --sku Basic --admin-enabled true
        az appservice plan create --name myAppServicePlan --resource-group  myResourceGroup2 --is-linux
        az webapp create --resource-group myResourceGroup2 --plan myAppServicePlan --name myApp --deployment-container-image-name myACRName.azurecr.io/calculator:latest
    
  2. Telepítse a Dockert a Jenkinsre.

  3. Győződjön meg arról, hogy a Docker Pipeline beépülő modul telepítve van.

  4. Ugyanabban az Azure-beli Egyszerű Java Web App-adattárban szerkessze a Jenkinsfile2 fájlt az alábbiak szerint:

    1. Frissítse az előfizetés azonosítóját és a bérlőazonosítót.

       withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>',
              'AZURE_TENANT_ID=<myTenantId>']) {
      
    2. Frissítsen az erőforráscsoport, a webalkalmazás és az ACR nevére (cserélje le a helyőrzőket az értékekre).

      def webAppResourceGroup = '<resource_group>'
      def webAppName = '<app_name>'
      def acrName = '<registry>'
      
    3. Frissítés <azsrvprincipal\> a hitelesítőadat-azonosítóra

      withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
      
  5. Hozzon létre egy új Jenkins-folyamatot, ahogyan azt az Azure-webalkalmazásban a Windows rendszerben végzett üzembe helyezéskor Jenkinsfile2tette.

  6. Futtassa az új feladatot.

  7. Az ellenőrzéshez futtassa az alábbi parancsot az Azure CLI-ben:

    az acr repository list -n <myRegistry> -o json
    

    Az alábbihoz hasonló eredményeket kell látnia:

    [
    "calculator"
    ]
    
  8. Keresse meg ( http://<app_name>.azurewebsites.net/api/calculator/ping cserélje le a helyőrzőt). Az alábbihoz hasonló eredményeknek kell megjelennie:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  9. Keresse meg ( http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y> cserélje le a helyőrzőket). A megadott xy értékek összegzése és megjelenítése.

További lépések