Zelfstudie: Apps implementeren in Azure Spring Apps met behulp van Jenkins en de Azure CLI
Notitie
Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.
Azure Spring Apps is een volledig beheerde microserviceontwikkeling met ingebouwd servicedetectie- en configuratiebeheer. Met de service kunt u eenvoudig op Spring Boot gebaseerde microservicetoepassingen implementeren in Azure. Deze zelfstudie laat zien hoe u Azure CLI in Jenkins kunt gebruiken om continue integratie en levering (CI/CD) voor Azure Spring Apps te automatiseren.
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, maakt u een gratis Azure-account aan voordat u begint.
- Jenkins: Jenkins installeren op een Linux-VM
- GitHub-account: Als u geen GitHub-account hebt, maakt u een gratis account voordat u begint.
Een service-exemplaar inrichten en een Java Spring-toepassing starten
We gebruiken Piggy Metrics als voorbeeldservicetoepassing van Microsoft en volgen dezelfde stappen in quickstart: Een Java Spring-toepassing starten met behulp van de Azure CLI om het service-exemplaar in te richten en de toepassingen in te stellen. Als u al hetzelfde proces hebt doorlopen, kunt u doorgaan naar de volgende sectie. Anders zijn de Azure CLI-opdrachten opgenomen in het volgende. Raadpleeg quickstart: Een Java Spring-toepassing starten met behulp van de Azure CLI voor meer informatie.
Uw lokale computer moet voldoen aan dezelfde vereisten 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 Apps-extensie:
az extension add --name spring
Maak een resourcegroep die uw Azure Spring Apps-service bevat:
az group create --location eastus --name <resource group name>
Een exemplaar van Azure Spring Apps inrichten:
az spring create -n <service name> -g <resource group name>
Fork de Piggy Metrics-opslagplaats naar uw eigen GitHub-account. Kloon uw opslagplaats op uw lokale computer in een map met de naam
source-code
:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetrics
Stel uw configuratieserver in. Zorg ervoor dat u uw GitHub-id> vervangt door <de juiste waarde.
az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label config
Bouw het project:
cd piggymetrics mvn clean package -D skipTests
Maak de drie microservices: gateway, verificatieservice en accountservice:
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>
De toepassingen implementeren:
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
Openbaar eindpunt toewijzen aan gateway:
az spring app update -n gateway -s <service name> -g <resource group name> --is-public true
Voer een query uit op de gatewaytoepassing om de URL op te halen, zodat u kunt controleren of de toepassing wordt uitgevoerd.
az spring app show --name gateway | grep url
Ga 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 om een build uit te voeren. Dit is prima voor testen. Vanwege beveiligingsimplicatie 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.
Invoegtoepassingen installeren
Meld u aan bij uw Jenkins-server.
Selecteer Jenkins beheren.
Selecteer Invoegtoepassingen beheren.
Selecteer op het tabblad Beschikbaar de volgende invoegtoepassingen:
Als deze invoegtoepassingen niet worden weergegeven in de lijst, controleert u het tabblad Geïnstalleerd om te zien of deze al zijn geïnstalleerd.
Als u de invoegtoepassingen wilt installeren, selecteert u Nu downloaden en installeert u deze na het opnieuw opstarten.
Start de Jenkins-server opnieuw op om de installatie te voltooien.
Uw Azure Service Principal-referentie toevoegen in het Jenkins-referentiearchief
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 voor meer informatie. De uitvoer ziet
az ad sp create-for-rbac
er ongeveer als volgt 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 Referenties>Systeem op het Jenkins-dashboard. Selecteer vervolgens Algemene referenties (onbeperkt).
Selecteer Referenties toevoegen.
Selecteer Microsoft Azure-service-principal als soort.
Geef waarden op voor de volgende velden:
- Abonnements-id: Azure-abonnements-id
- Client-id: service-principal-appid
- Clientgeheim: wachtwoord voor service-principal
- Tenant-id: Tenant-id van Microsoft-account
- Azure-omgeving: selecteer de juiste waarde voor uw omgeving. Gebruik bijvoorbeeld Azure voor Azure Global
- Id: Instellen als
azure_service_principal
. We gebruiken deze id in een latere stap in dit artikel - Beschrijving: Deze waarde is optioneel, maar wordt aanbevolen vanuit het oogpunt van documentatie/onderhoud.
Maven en Azure CLI spring-extensie installeren
De voorbeeldpijplijn maakt gebruik van Maven om te bouwen en Azure CLI om te implementeren in het service-exemplaar. Wanneer Jenkins is geïnstalleerd, wordt er een beheerdersaccount gemaakt met de naam Jenkins. Zorg ervoor dat de jenkins van de gebruiker gemachtigd is om de spring-extensie uit te voeren.
Verbinding maken via SSH naar de Jenkins-controller.
Installeer Maven.
sudo apt-get install maven
Controleer of de Azure CLI is geïnstalleerd door deze in te voeren
az version
. Als de Azure CLI niet is geïnstalleerd, raadpleegt u De Azure CLI installeren.Overschakelen naar de
jenkins
gebruiker:sudo su jenkins
Installeer de spring-extensie:
az extension add --name spring
Een Jenkins-bestand maken
Maak in uw eigen opslagplaats een
https://github.com/your_github_id/piggymetrics
Jenkins-bestand in de hoofdmap.Werk het bestand als volgt bij. Zorg ervoor dat u de waarden van de naam> en< servicenaam> van <de resourcegroep vervangt. Vervang azure_service_principal door de juiste id als u een andere waarde gebruikt bij het toevoegen van de referentie in Jenkins.
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' } } }
Sla de wijziging op en voer deze door.
De taak maken
Selecteer Nieuw item op het Jenkins-dashboard.
Geef een naam op, Deploy-PiggyMetrics voor de taak en selecteer Pipeline. Klik op OK.
Selecteer het tabblad Pijplijn.
Selecteer bij Definitie de optie Pijplijnscript uit SCM.
Bij SCM selecteert u Git.
Voer de GitHub-URL in voor uw geforkte opslagplaats:
https://github.com/<your GitHub id>/piggymetrics.git
.Voor Branch Specifier (zwart voor 'any') selecteert u /Azure.
Selecteer Jenkinsfile voor scriptpad.
Selecteer Opslaan
De taak valideren en uitvoeren
Voordat u de taak uitvoert, bewerkt u de tekst in het invoervak voor aanmelding om de aanmeldings-id in te voeren.
Open
index.html
in/gateway/src/main/resources/static/
uw opslagplaats.enter your login
Zoek en werk die tekst bij naarenter login ID
.<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
Sla de wijziging op en voer deze door.
Voer de taak handmatig uit in Jenkins. Selecteer de taak
Deploy-PiggyMetrics
op het Jenkins-dashboard en selecteer Nu bouwen.
Nadat de taak is voltooid, gaat u naar het openbare IP-adres van de gateway
toepassing en controleert u of uw toepassing is bijgewerkt.
Resources opschonen
Verwijder de resources die in dit artikel zijn gemaakt wanneer u deze niet meer nodig hebt:
az group delete -y --no-wait -n <resource group name>