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.

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:

  1. Telepítse az Azure Spring Apps bővítményt:

    az extension add --name spring
    
  2. 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>
    
  3. Az Azure Spring Apps egy példányának kiépítése:

    az spring create -n <service name> -g <resource group name>
    
  4. Fork the Piggy Metrics repo to your own GitHub account. A helyi gépen klónozza az adattárat a következő nevű source-codekönyvtárban:

    mkdir source-code
    git clone https://github.com/<your GitHub id>/piggymetrics
    
  5. Á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
    
  6. A projekt létrehozása:

    cd piggymetrics
    mvn clean package -D skipTests
    
  7. 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>
    
  8. 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
    
  9. 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
    
  10. 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
    
  11. 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

  1. Jelentkezzen be a Jenkins-kiszolgálóra.

  2. Válassza a Jenkins kezelése lehetőséget.

  3. Válassza a Beépülő modulok kezelése lehetőséget.

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

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

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

  1. 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"
    }
    
  2. 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.

  3. Válassza a Hitelesítő adatok hozzáadása lehetőséget.

  4. Válassza ki a Microsoft Azure szolgáltatásnevet típusként.

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

  1. Csatlakozás a Jenkins-vezérlőhöz SSH-val.

  2. Telepítse a Maven-t.

    sudo apt-get install maven
    
  3. 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.

  4. Váltás a felhasználóra jenkins :

    sudo su jenkins
    
  5. Telepítse a rugós bővítményt:

    az extension add --name spring
    

Jenkinsfile létrehozása

  1. Saját adattárban – https://github.com/your_github_id/piggymetrics hozzon létre egy Jenkins-fájlt a gyökérben.

  2. 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'
            }
          }
        }
    
  3. Mentse és véglegesítse a módosítást.

A feladat létrehozása

  1. A Jenkins-irányítópulton válassza az Új elem lehetőséget.

  2. Adja meg a feladat nevét, a Deploy-PiggyMetrics nevet, majd válassza a Folyamat lehetőséget. Kattintson az OK gombra.

  3. Válassza ki a Pipeline (Folyamat) lapot.

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

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

  6. Adja meg az elágaztatott adattár GitHub-URL-címét: https://github.com/&lt;your GitHub id&gt;/piggymetrics.git.

  7. A Branch Specifier (bármely esetén fekete) esetén válassza az /Azure lehetőséget.

  8. A Szkript elérési útja beállításnál válassza a Jenkinsfile lehetőséget.

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

  1. Az adattárban nyissa meg index.html a következőt /gateway/src/main/resources/static/: .

  2. Keresse meg enter your login és frissítse a szöveget a következőre enter login ID: .

    <input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
    
  3. Mentse és véglegesítse a módosítást.

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

Updated Piggy Metrics

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