Oktatóanyag: Alkalmazások üzembe helyezése az Azure Spring Appsben a Jenkins és az Azure CLI használatával
Megjegyzés:
Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.
Az Azure Spring Apps egy teljes körűen felügyelt mikroszolgáltatás-fejlesztés beépített szolgáltatásfelderítéssel és konfigurációkezeléssel. A szolgáltatás megkönnyíti a Spring Boot-alapú mikroszolgáltatási alkalmazások üzembe helyezését az Azure-ban. Ez az oktatóanyag bemutatja, hogyan automatizálhatja az Azure CLI-t a Jenkinsben az Azure Spring Apps folyamatos integrációjának és kézbesítésének (CI/CD) automatizálásához.
Ebben az oktatóanyagban a következő feladatokat fogja elvégezni:
- Szolgáltatáspéldány kiépítése és Java Spring-alkalmazás indítása
- A Jenkins-kiszolgáló előkészítése
- A mikroszolgáltatási alkalmazások létrehozásához és üzembe helyezéséhez használja az Azure CLI-t egy Jenkins-folyamatban
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.
- Jenkins: A Jenkins telepítése Linux rendszerű virtuális gépen
- GitHub-fiók: Ha nem rendelkezik GitHub-fiókkal, a kezdés előtt hozzon létre egy ingyenes fiókot .
Szolgáltatáspéldány kiépítése és Java Spring-alkalmazás indítása
A Piggy-metrikákat használjuk minta Microsoft-szolgáltatásalkalmazásként, és a rövid útmutató lépéseit követve indítunk el egy Java Spring-alkalmazást az Azure CLI-vel a szolgáltatáspéldány kiépítéséhez és az alkalmazások beállításához. Ha már végighaladt ezen a folyamaton, ugorjon a következő szakaszra. Ellenkező esetben az alábbiakban az Azure CLI-parancsok szerepelnek. További információkért tekintse meg a rövid útmutatót: Java Spring-alkalmazás indítása az Azure CLI használatával.
A helyi gépnek ugyanazt az előfeltételt kell teljesítenie, mint a Jenkins buildkiszolgálójának. Győződjön meg arról, hogy az alábbiak telepítve vannak a mikroszolgáltatási alkalmazások létrehozásához és üzembe helyezéséhez:
- Git
- JDK 8
- Maven 3.0 vagy újabb
- Telepített Azure CLI, 2.0.67-es vagy újabb verzió
Telepítse az Azure Spring Apps bővítményt:
az extension add --name spring
Hozzon létre egy erőforráscsoportot az Azure Spring Apps-szolgáltatás használatához:
az group create --location eastus --name <resource group name>
Az Azure Spring Apps egy példányának kiépítése:
az spring create -n <service name> -g <resource group name>
Fork the Piggy Metrics repo to your own GitHub account. A helyi gépen klónozza az adattárat a következő nevű
source-code
könyvtárban:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetrics
Állítsa be a konfigurációs kiszolgálót. Győződjön meg arról, hogy a GitHub-azonosítót> a megfelelő értékre cseréli<.
az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label config
A projekt létrehozása:
cd piggymetrics mvn clean package -D skipTests
Hozza létre a három mikroszolgáltatást: átjáró, hitelesítésszolgáltatás és fiókszolgáltatás:
az spring app create --n gateway -s <service name> -g <resource group name> az spring app create --n auth-service -s <service name> -g <resource group name> az spring app create --n account-service -s <service name> -g <resource group name>
Az alkalmazások üzembe helyezése:
az spring app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar az spring app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar az spring app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jar
Nyilvános végpont hozzárendelése átjáróhoz:
az spring app update -n gateway -s <service name> -g <resource group name> --is-public true
Az átjáróalkalmazás lekérdezésével lekérheti az URL-címet, így ellenőrizheti, hogy az alkalmazás fut-e.
az spring app show --name gateway | grep url
Lépjen az előző parancs által megadott URL-címre a PiggyMetrics alkalmazás futtatásához.
Jenkins-kiszolgáló előkészítése
Ebben a szakaszban előkészíti a Jenkins-kiszolgálót egy build futtatására, amely a teszteléshez megfelelő. A biztonsági következmények miatt azonban azure-beli virtuálisgép-ügynököt vagy Azure Container-ügynököt kell használnia egy ügynök azure-beli üzembe helyezéséhez a buildek futtatásához.
Beépülő modulok telepítése
Jelentkezzen be a Jenkins-kiszolgálóra.
Válassza a Jenkins kezelése lehetőséget.
Válassza a Beépülő modulok kezelése lehetőséget.
Az Elérhető lapon válassza a következő beépülő modulokat:
Ha ezek a beépülő modulok nem jelennek meg a listában, a Telepített lapon ellenőrizze, hogy már telepítve vannak-e.
A beépülő modulok telepítéséhez válassza a Letöltés most lehetőséget, majd az újraindítás után telepítse.
Indítsa újra a Jenkins-kiszolgálót a telepítés befejezéséhez.
Azure-szolgáltatásnév hitelesítő adatainak hozzáadása a Jenkins hitelesítőadat-tárolójában
Azure-szolgáltatásnévre van szüksége az Azure-ban való üzembe helyezéshez. További információkért tekintse meg a Szolgáltatásnév létrehozása szakaszt az Üzembe helyezés Azure-alkalmazás szolgáltatáshoz oktatóanyagban. A kimenet
az ad sp create-for-rbac
a következőképpen néz ki:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }
A Jenkins irányítópultján válassza a Credentials>System (Hitelesítő adatok, Rendszer) lehetőséget. Ezután válassza a Global credentials (unrestricted) (Globális hitelesítő adatok (korlátlan)) elemet.
Válassza a Hitelesítő adatok hozzáadása lehetőséget.
Válassza ki a Microsoft Azure szolgáltatásnevet típusként.
Adja meg az alábbi mezők értékeit:
- Előfizetés azonosítója: Azure-előfizetés azonosítója
- Ügyfélazonosító: Szolgáltatásnév appid
- Titkos ügyfélkód: Szolgáltatásnév jelszava
- Bérlőazonosító: Microsoft-fiók bérlőazonosítója
- Azure Environment: Válassza ki a környezetének megfelelő értéket. Például az Azure for Azure Global használata
- Azonosító: Beállítás:
azure_service_principal
. Ezt az azonosítót a cikk egy későbbi lépésében használjuk - Leírás: Ez az érték nem kötelező, de dokumentációs/karbantartási szempontból ajánlott.
A Maven és az Azure CLI spring bővítmény telepítése
A mintafolyamat a Maven használatával készíti el az azure CLI-t a szolgáltatáspéldányon való üzembe helyezéshez. A Jenkins telepítésekor létrehoz egy jenkins nevű rendszergazdai fiókot. Győződjön meg arról, hogy a jenkins felhasználó rendelkezik engedéllyel a spring bővítmény futtatásához.
Csatlakozás a Jenkins-vezérlőhöz SSH-val.
Telepítse a Maven-t.
sudo apt-get install maven
Ellenőrizze, hogy az Azure CLI telepítve van-e a következő beírásával
az version
: . Ha az Azure CLI nincs telepítve, tekintse meg az Azure CLI telepítését.Váltás a felhasználóra
jenkins
:sudo su jenkins
Telepítse a rugós bővítményt:
az extension add --name spring
Jenkinsfile létrehozása
Saját adattárban –
https://github.com/your_github_id/piggymetrics
hozzon létre egy Jenkins-fájlt a gyökérben.Frissítse a fájlt az alábbiak szerint. Győződjön meg arról, hogy lecseréli az erőforráscsoport nevének> és <a szolgáltatásnévnek az értékeit>.< Cserélje le a azure_service_principal a megfelelő azonosítóra, ha más értéket használ, amikor hozzáadta a hitelesítő adatokat a Jenkinsben.
node { stage('init') { checkout scm } stage('build') { sh 'mvn clean package' } stage('deploy') { withCredentials([azureServicePrincipal('azure_service_principal')]) { // Log in to Azure sh ''' az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID az account set -s $AZURE_SUBSCRIPTION_ID ''' // Set default resource group name and service name. Replace <resource group name> and <service name> with the right values sh 'az config set defaults.group=<resource group name>' sh 'az config set defaults.spring=<service name>' // Deploy applications sh 'az spring app deploy -n gateway --jar-path ./gateway/target/gateway.jar' sh 'az spring app deploy -n account-service --jar-path ./account-service/target/account-service.jar' sh 'az spring app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar' sh 'az logout' } } }
Mentse és véglegesítse a módosítást.
A feladat létrehozása
A Jenkins-irányítópulton válassza az Új elem lehetőséget.
Adja meg a feladat nevét, a Deploy-PiggyMetrics nevet, majd válassza a Folyamat lehetőséget. Kattintson az OK gombra.
Válassza ki a Pipeline (Folyamat) lapot.
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://github.com/<your GitHub id>/piggymetrics.git
.A Branch Specifier (bármely esetén fekete) esetén válassza az /Azure lehetőséget.
A Szkript elérési útja beállításnál válassza a Jenkinsfile lehetőséget.
Select Save
A feladat ellenőrzése és futtatása
A feladat futtatása előtt szerkessze a bejelentkezési beviteli mezőben található szöveget a bejelentkezési azonosító megadásához.
Az adattárban nyissa meg
index.html
a következőt/gateway/src/main/resources/static/
: .Keresse meg
enter your login
és frissítse a szöveget a következőreenter login ID
: .<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
Mentse és véglegesítse a módosítást.
Futtassa a feladatot manuálisan a Jenkinsben. A Jenkins-irányítópulton válassza ki a feladatot
Deploy-PiggyMetrics
, majd válassza a Build Now lehetőséget.
A feladat befejezése után lépjen az alkalmazás nyilvános IP-címére gateway
, és ellenőrizze, hogy az alkalmazás frissült-e.
Clean up resources
Ha már nincs rá szükség, törölje a cikkben létrehozott erőforrásokat:
az group delete -y --no-wait -n <resource group name>
További lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: