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 - telepítése Linux rendszerű virtuális gépre
- Azure CLI: Telepítse az Azure CLI-t (2.0.67-es vagy újabb verzió) a Jenkins-kiszolgálón.
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:
Jelentkezzen be a Jenkins-vezérlőbe SSH használatával.
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
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:
Győződjön meg arról, hogy a Hitelesítő adatok beépülő modul telepítve van.
A Jenkins-irányítópulton válassza a Hitelesítő adatok – Rendszer lehetőséget>>.
Válassza ki a globális hitelesítő adatokat (nem korlátozott).
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
)
- Felhasználónév: Szolgáltatásnév
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
Nyissa meg az Azure-hoz készült egyszerű Java-webalkalmazást bemutató adattárat.
Az Elágazáshoz gombot választva elágaztathatja az adattárat a saját GitHub-fiókjába.
Nyissa meg a Jenkinsfile fájlt a fájl nevére kattintva.
A fájl szerkesztéséhez válassza a ceruza ikont.
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>'])
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>'
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:
Nyissa meg a Jenkinst egy webböngészőben.
Válassza a New Item (Új elem) lehetőséget.
Adja meg a feladat nevét.
Válassza a Folyamat lehetőséget.
Kattintson az OK gombra.
Válassza a Folyamat lehetőséget.
A Definition (Definíció) értékeként válassza a Pipeline script from SCM (Folyamatszkript SCM-ből) lehetőséget.
Az SCM értékeként válassza a Git lehetőséget.
Adja meg az elágaztatott adattár GitHub-URL-címét:
https:\<forked_repo\>.git
Select Save
A folyamat tesztelése
Ugrás a létrehozott folyamatra
Válassza a Build now (Build now) lehetőséget
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:
Keresse meg a következő URL-címet:
http://<app_name>.azurewebsites.net/api/calculator/ping
A következőhöz hasonló szövegnek kell megjelennie:
Welcome to Java Web App!!! This is updated! Today's date
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>.
Ü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.
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
Győződjön meg arról, hogy a Docker Pipeline beépülő modul telepítve van.
Ugyanabban az Azure-beli Egyszerű Java Web App-adattárban szerkessze a Jenkinsfile2 fájlt az alábbiak szerint:
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>']) {
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>'
Frissítés
<azsrvprincipal\>
a hitelesítőadat-azonosítórawithCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Hozzon létre egy új Jenkins-folyamatot, ahogyan azt az Azure-webalkalmazásban a Windows rendszerben végzett üzembe helyezéskor
Jenkinsfile2
tette.Futtassa az új feladatot.
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" ]
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
Keresse meg (
http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>
cserélje le a helyőrzőket). A megadottx
y
értékek összegzése és megjelenítése.