Zelfstudie: Apps implementeren Azure Spring Cloud jenkins en de Azure CLI
Azure Spring Cloud is een volledig beheerde microserviceontwikkeling met ingebouwd servicedetectie- en configuratiebeheer. Met de service kunt u eenvoudig op Spring Boot gebaseerde microservicetoepassingen implementeren in Azure. In deze zelfstudie ziet u hoe u Azure CLI in Jenkins kunt gebruiken om continue integratie en levering (CI/CD) te automatiseren voor Azure Spring Cloud.
In deze zelfstudie voert u de volgende taken uit:
- Een service-exemplaar inrichten en een Java Spring-toepassing starten
- Uw Jenkins-server voorbereiden
- De Azure CLI in een Jenkins-pijplijn gebruiken om de microservicetoepassingen te bouwen en te implementeren
Vereisten
- Azure-abonnement: Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
- Jenkins:Jenkins installeren op een Linux-VM
- GitHub account:als u nog geen account GitHub, maakt u een gratis account voordat u begint.
Een service-exemplaar inrichten en een Java Spring-toepassing starten
We gebruiken Piggy Metrics als de Microsoft-voorbeeldservicetoepassing en volgen dezelfde stappen in Quickstart: Een Java Spring-toepassing starten met behulp van de Azure CLI om het service-exemplaar in terichten en de toepassingen in te stellen. Als u hetzelfde proces al hebt doorlopen, kunt u naar de volgende sectie gaan. Anders zijn de Azure CLI-opdrachten opgenomen in het volgende. Raadpleeg Quickstart: Een Java Spring-toepassing starten met behulp van de Azure CLI voor aanvullende achtergrondinformatie.
Uw lokale computer moet voldoen aan dezelfde vereiste als de Jenkins-buildserver. Zorg ervoor dat het volgende is geïnstalleerd om de microservicetoepassingen te bouwen en te implementeren:
- Git
- JDK 8
- Maven 3.0 of hoger
- Azure CLI geïnstalleerd,versie 2.0.67 of hoger
Installeer de Azure Spring Cloud extensie:
az extension add --name spring-cloudMaak een resourcegroep die uw Azure Spring Cloud bevat:
az group create --location eastus --name <resource group name>Een exemplaar van een Azure Spring Cloud:
az spring-cloud create -n <service name> -g <resource group name>Fork de Piggy Metrics-repo naar uw eigen GitHub account. Kloon uw repo op uw lokale computer in een map met de naam
source-code:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetricsStel uw configuratieserver in. Zorg ervoor dat u < de id GitHub vervangen door de juiste > waarde.
az spring-cloud config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label configBouw het project:
cd piggymetrics mvn clean package -D skipTestsMaak de drie microservices: gateway,auth-serviceen 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>De toepassingen implementeren:
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.jarOpenbaar eindpunt toewijzen aan gateway:
az spring-cloud app update -n gateway -s <service name> -g <resource group name> --is-public trueQuery uitvoeren op de gatewaytoepassing om de URL op te halen, zodat u kunt controleren of de toepassing wordt uitgevoerd.
az spring-cloud app show --name gateway | grep urlGa naar de URL die met de vorige opdracht is opgehaald om de PiggyMetrics-toepassing uit te voeren.
Jenkins-server voorbereiden
In deze sectie bereidt u de Jenkins-server voor op het uitvoeren van een build. Dit is prima om te testen. Vanwege beveiligingsrisico's moet u echter een Azure VM-agent of Azure Container-agent gebruiken om een agent in Azure te maken om uw builds uit te voeren.
In plug-ins installeren
Meld u aan bij uw Jenkins-server. Kies Manage Jenkins Manage Plugins.
Selecteer op het tabblad Beschikbaar de volgende in plug-ins:
Als deze in plug-ins niet worden weergegeven in de lijst, controleert u het tabblad Geïnstalleerd om te zien of ze al zijn geïnstalleerd.
Als u de in plug-ins wilt installeren, kiest u Nu downloaden en installeert u na het opnieuw opstarten.
Start de Jenkins-server opnieuw op om de installatie te voltooien.
Uw Azure Service Principal-referentie toevoegen in het Jenkins-referentieopslag
U hebt een Azure-service-principal nodig om te implementeren in Azure. Zie de sectie Service-principal maken in de zelfstudie Implementeren naar Azure App Service informatie. De uitvoer van
az ad sp create-for-rbacziet er als volgende uit:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }Selecteer ReferentiesSysteem op het Jenkins-dashboard. Selecteer vervolgens Algemene referenties (onbeperkt).
Selecteer Referenties toevoegen.
Selecteer Microsoft Azure Service-principal als soort.
Waarden voor de volgende velden op te geven:
- Abonnements-id:Azure-abonnements-id
- Client-id:appid van service-principal
- Clientgeheim:Wachtwoord van service-principal
- Tenant-id:Microsoft-account tenant-id
- Azure-omgeving:selecteer de juiste waarde voor uw omgeving. Gebruik bijvoorbeeld Azure voor Azure Global
- Id:stel in als . We gebruiken deze id in een latere stap in dit artikel
- Beschrijving:dit is optioneel, maar wordt aanbevolen.
Maven en Az CLI spring-cloud-extensie installeren
De voorbeeldpijplijn maakt gebruik van Maven om te bouwen en Az CLI om te implementeren in het service-exemplaar. Wanneer Jenkins is geïnstalleerd, wordt er een beheerdersaccount met de naam jenkins gemaakt. Zorg ervoor dat de gebruiker jenkins toestemming heeft om de Spring-Cloud-extensie uit te voeren.
Verbinding maken via SSH naar de Jenkins-controller.
Installeer Maven.
sudo apt-get install mavenControleer of de Azure CLI is geïnstalleerd door in te
az versioninvoeren. Zie Azure CLI installeren als de Azure CLI niet is geïnstalleerd.Schakel over naar de
jenkinsgebruiker:sudo su jenkinsVoeg de spring-cloudextensie toe:
az extension add --name spring-cloud
Een Jenkinsfile maken
Maak in uw eigen repo https://github.com/< (uw GitHub > id /piggymetrics) een https://github.com/ in de hoofdmap.
Werk het bestand als volgt bij. Zorg ervoor dat u de waarden van resourcegroepnaam en >> Vervang azure_service_principal door de juiste id als u een andere waarde gebruikt toen u de referentie in Jenkins hebt toegevoegd.
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' } } }Sla de wijziging op en sla deze door.
De taak maken
Klik op het Jenkins-dashboard op Nieuw item.
Geef een naam op, Deploy-PiggyMetrics voor de taak en selecteer Pijplijn. Klik op OK.
Klik nu op het tabblad Pijplijn.
Selecteer bij Definitie de optie Pijplijnscript uit SCM.
Bij SCM selecteert u Git.
Voer de GitHub-URL voor uw gevorkte repo in: < uw GitHub > id /piggymetrics.git
Zorg ervoor dat Vertakkings specificer (zwart voor 'any') */Azure is
Scriptpad behouden als Jenkinsfile
Klik op Opslaan.
De taak valideren en uitvoeren
Voordat u de taak gaat uitvoeren, werken we de tekst in het invoervak voor aanmelding bij om de aanmeldings-id in te voeren.
Open in uw eigen repo
index.htmlinindex.htmlZoek naar 'voer uw aanmelding in' en werk bij naar 'aanmeldings-id invoeren'
<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>De wijzigingen door te voeren
Voer de taak handmatig uit in Jenkins. Klik op het Jenkins-dashboard op de taak Deploy-PiggyMetrics en vervolgens op Build Now.
Nadat de taak is voltooid, gaat u naar het openbare IP-adres van de gatewaytoepassing en controleert u of uw toepassing is bijgewerkt.

Resources opschonen
Verwijder de resources die in dit artikel zijn gemaakt wanneer u ze niet meer nodig hebt:
az group delete -y --no-wait -n <resource group name>