Självstudie: Distribuera appar till Azure Spring Cloud med Jenkins och Azure CLI
Azure Spring Cloud är en fullständigt hanterad mikrotjänstutveckling med inbyggd tjänstidentifiering och konfigurationshantering. Tjänsten gör det enkelt att distribuera Spring Boot-baserade mikrotjänstprogram till Azure. Den här självstudien visar hur du kan använda Azure CLI i Jenkins för att automatisera kontinuerlig integrering och leverans (CI/CD) för Azure Spring Cloud.
I den här självstudien får du utföra följande uppgifter:
- Etablera en tjänstinstans och starta ett Java Spring-program
- Förbereda Jenkins-servern
- Använda Azure CLI i en Jenkins-pipeline för att skapa och distribuera mikrotjänstprogrammen
Förutsättningar
- Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
- Jenkins:Installera Jenkins på en virtuell Linux-dator
- GitHub konto:Om du inte har ett GitHub kan du skapa ett kostnadsfritt konto innan du börjar.
Etablera en tjänstinstans och starta ett Java Spring-program
Vi använder Kody Metrics som Microsoft-exempeltjänstprogram och följer samma steg i Snabbstart: Starta ett Java Spring-program med Hjälp av Azure CLI för att etablera tjänstinstansen och konfigurera programmen. Om du redan har gått igenom samma process kan du gå vidare till nästa avsnitt. Annars ingår Azure CLI-kommandona i följande. Mer bakgrundsinformation finns i Snabbstart: Starta ett Java Spring-program med Hjälp av Azure CLI.
Den lokala datorn måste uppfylla samma krav som Jenkins-byggservern. Kontrollera att följande är installerade för att skapa och distribuera mikrotjänstprogrammen:
- Git
- JDK 8
- Maven 3.0 eller högre
- Azure CLI installerat, version 2.0.67 eller senare
Installera Azure Spring Cloud tillägget:
az extension add --name spring-cloudSkapa en resursgrupp som ska innehålla din Azure Spring Cloud tjänst:
az group create --location eastus --name <resource group name>Etablera en instans av Azure Spring Cloud:
az spring-cloud create -n <service name> -g <resource group name>Fördring lagringsplatsen För dina GitHub mått. På den lokala datorn klonar du lagringsplatsen i en katalog med namnet
source-code:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetricsKonfigurera konfigurationsservern. Se till att ersätta < ditt GitHub-ID > med rätt värde.
az spring-cloud config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label configSkapa projektet:
cd piggymetrics mvn clean package -D skipTestsSkapa de tre mikrotjänster: gateway,auth-serviceoch account-service:
az spring-cloud app create --n gateway -s <service name> -g <resource group name> az spring-cloud app create --n auth-service -s <service name> -g <resource group name> az spring-cloud app create --n account-service -s <service name> -g <resource group name>Distribuera programmen:
az spring-cloud app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar az spring-cloud app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar az spring-cloud app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jarTilldela offentlig slutpunkt till gateway:
az spring-cloud app update -n gateway -s <service name> -g <resource group name> --is-public trueFråga gatewayprogrammet för att hämta URL:en så att du kan kontrollera att programmet körs.
az spring-cloud app show --name gateway | grep urlGå till URL:en som angavs av föregående kommando för att köra Programmet SymmetryMetrics.
Förbereda Jenkins-servern
I det här avsnittet förbereder du Jenkins-servern för att köra en version, vilket är ok för testning. På grund av säkerhetsaspekten bör du dock använda en Azure VM-agent eller Azure Container-agent för att starta en agent i Azure för att köra dina byggen.
Installera plugin-program
Logga in på Jenkins-servern. Välj Hantera Jenkins Manage Plugins (Hantera Jenkins-plugin-program).
På fliken Tillgänglig väljer du följande plugin-program:
Om dessa plugin-program inte visas i listan kontrollerar du fliken Installerat för att se om de redan är installerade.
Om du vill installera plugin-program väljer du Ladda ned nu och installerar efter omstart.
Starta om Jenkins-servern för att slutföra installationen.
Lägg till dina autentiseringsuppgifter för Azure-tjänstens huvudnamn i Jenkins-autentiseringsarkivet
Du behöver azure-tjänstens huvudnamn för distribution till Azure. Mer information finns i avsnittet Skapa tjänstens huvudnamn i självstudien Distribuera Azure App Service tjänsthuvudnamn. Utdata från
az ad sp create-for-rbacser ut ungefär så här:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }På Jenkins-instrumentpanelen väljer du AutentiseringsuppgifterSystem. Välj sedan Globala autentiseringsuppgifter (obegränsade).
Välj Lägg till autentiseringsuppgifter.
Välj Microsoft Azure tjänstens huvudnamn som typ.
Ange värden för följande fält:
- Prenumerations-ID:Azure-prenumerations-ID
- Klient-ID:Appid för tjänstens huvudnamn
- Klienthemlighet:Lösenord för tjänstens huvudnamn
- Klientorganisations-ID:Microsoft-konto klientorganisations-ID
- Azure-miljö:Välj lämpligt värde för din miljö. Använd till exempel Azure för Azure Global
- ID:Ange som . Vi använder detta ID i ett senare steg i den här artikeln
- Beskrivning:Detta är valfritt, men rekommenderas.
Installera Maven- och Az CLI spring-cloud-tillägget
Exempelpipelinen använder Maven för att skapa och Az CLI för att distribuera till tjänstinstansen. När Jenkins installeras skapas ett administratörskonto med namnet jenkins. Kontrollera att användaren jenkins har behörighet att köra spring-cloud-tillägget.
Anslut jenkins-styrenheten via SSH.
Installera Maven.
sudo apt-get install mavenKontrollera att Azure CLI är installerat genom att ange
az version. Om Azure CLI inte är installerat kan du se Installera Azure CLI.Växla till
jenkinsanvändaren:sudo su jenkinsLägg till spring-cloud-tillägget:
az extension add --name spring-cloud
Skapa en Jenkins-fil
Skapa en Jenkinsfile i roten GitHub din egen lagringsplatsen (ditt https://github.com/< GitHub-id/GitHub metrics). >https://github.com/
Uppdatera filen på följande sätt. Se till att ersätta värdena för resursgruppens namn > och>. Ersätt azure_service_principal med rätt ID om du använder ett annat värde när du lade till autentiseringssuppgifter i Jenkins.
node { stage('init') { checkout scm } stage('build') { sh 'mvn clean package' } stage('deploy') { withCredentials([azureServicePrincipal('azure_service_principal')]) { // login 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-cloud=<service name>' // Deploy applications sh 'az spring-cloud app deploy -n gateway --jar-path ./gateway/target/gateway.jar' sh 'az spring-cloud app deploy -n account-service --jar-path ./account-service/target/account-service.jar' sh 'az spring-cloud app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar' sh 'az logout' } } }Spara och genomför ändringen.
Skapa jobbet
På Jenkins-instrumentpanelen klickar du på Nytt objekt.
Ange ett namn, Deploy-SymmetryMetrics för jobbet och välj Pipeline. Klicka på OK.
Klicka på fliken Pipeline.
För Definition väljer du Pipeline-skript från SCM.
För SCM väljer du Git.
Ange url GitHub adressen för den fördelade lagringsplatsen: < ditt GitHub-id > /GitHub metrics.git
Kontrollera att Branch Specifier (svart för "any") är */Azure
Behåll skriptsökvägen som Jenkinsfile
Klicka på Spara
Verifiera och köra jobbet
Innan du kör jobbet uppdaterar vi texten i inloggningsrutan för att ange inloggnings-ID: t.
Öppna i din egen
index.htmllagringsplatsenindex.htmlSök efter "ange din inloggning" och uppdatera till "ange inloggnings-ID"
<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>Genomför ändringarna
Kör jobbet i Jenkins manuellt. På Jenkins-instrumentpanelen klickar du på jobbet Deploy-PatiMetrics och sedan på Build Now (Skapa nu).
När jobbet är klart går du till gatewayprogrammets offentliga IP-adress och kontrollerar att programmet har uppdaterats.

Rensa resurser
Ta bort resurserna som skapades i den här artikeln när de inte längre behövs:
az group delete -y --no-wait -n <resource group name>