aws codebuild tutorial
AWS CodeBuild DevOps Tool:
implementatie van een stack c ++
In Deel 1 van de AWS DevOps-tools , we hebben gezien hoe CodeCommit-service werd gebruikt om de broncode op te slaan in een veilige online versiebeheerservice, wat een eerste vereiste is voor elke DevOps-implementatie.
In Deel 2 van de serie , zullen we meer leren over hoe de code uit de CodeCommit-repository kan worden gecompileerd in de cloud met behulp van de CodeBuild-service en het ANT- of Maven-buildprogramma.
Voorgestelde lezing => Absolute DevOps-trainingsreeks
Het belangrijkste is dat het niet nodig is om een build-server aan te bieden. De geproduceerde artefacten worden vervolgens opgeslagen in de AWS S3-bucket, een eenvoudige opslagservice voor het opslaan en ophalen van elke hoeveelheid gegevens op internet. Deze 2 activiteiten in beide tutorials maken deel uit van Continuous Integration.
In deze tutorial zullen we ook zien hoe Jenkins kan worden geïntegreerd met de CodeBuild.
Voorwaarde:
- Account bij AWS, bij voorkeur een gratis laag.
- Goede en snelle internetverbinding.
- Gebruikte AWS-regio - Azië-Pacific (Singapore).
Opmerking: Als u AWS-regio (Mumbai) hebt gebruikt voor CodeCommit-service, wordt deze regio niet ondersteund in de CodeBuild. U moet de juiste ondersteunde regio gebruiken en daarom wordt hier de regio Singapore gebruikt.
Wat je leert:
- Bouwproces in CodeBuild
- Creëer Build Project
- Jenkins-integratie met AWS CodeBuild
- Overzicht
- Aanbevolen literatuur
Bouwproces in CodeBuild
Hieronder volgt het proces dat wordt gevolgd tijdens het bouwen tijdens het gebruik van de CodeBuild-service:
- De broncode wordt opgehaald uit de CodeCommit-repository. De broncode kan ook worden opgeslagen in de GitHub of zelfs een S3-bucket.
- De CodeBuild-service is afhankelijk van een bestand met de naam buildspec.yml die enkele opdrachten bevat die tijdens de bouwfasen moeten worden uitgevoerd, zoals Installeren, Pre-Build, Build en Post-Build. Dit bestand moet in de ROOT van de projectmap staan en in de repository worden vastgelegd.
- Als u de buildspec.yml om de build uit te voeren, kunnen de maven-opdrachten ook direct worden gebruikt.
- Ten slotte worden de gegenereerde artefacten zoals J2EE JAR / WAR / EAR-bestand opgeslagen in de S3-bucket.
- Meldingen met AWS Simple Notification Service (SNS) kunnen ook worden geconfigureerd om de buildresultaten naar de relevante gebruikers te e-mailen.
Hier zullen we zien hoe we de CodeCommit-repository (zie deel 1) en het maven-commando kunnen gebruiken om ons project te bouwen en het artefact op te slaan in de S3-bucket.
Creëer Build Project
Log in op AWS en start de CodeBuild-service. Klik om een nieuw Build-project te maken.
Voer de gegevens als volgt in:
Naam van het project: AWS-HelloWorld
Bronprovider: AWS CodeCommit
Opslagplaats: AWS-HelloWorld
Besturingssysteem: Ubuntu
Looptijd: Java
Runtime-versie: openjdk-8
Bouwspecificatie: Voeg build-opdrachten in
Build-opdrachten: mvn schone installatie
Uitvoerbestanden: Target / AWS-HelloWorld-1.0.0.war (Dit is in de indeling Artifact ID-Version overgenomen uit het POM-bestand).
Artefacten: Waar de artefacten van dit bouwproject moeten worden neergezet.
Type: Amazon S3
Naam: HWJavaWebTarget (Dit is de map in de bucket).
Bucket naam: hwcodebuildbucket (De bucket moet in eerste instantie worden gemaakt voordat de build wordt uitgevoerd en moet in kleine letters zijn volgens de conventies).
De volgende 3 screenshots zijn van een enkel formulier om het bouwproject te configureren:
black box-testtechnieken met voorbeelden
Klik Ga verder en vervolgens Opslaan. De build kan nu worden geactiveerd door op het Start Build knop.
Klik nogmaals op het Start Build om de voortgang van de uitvoering te bekijken.
De build is nu met succes voltooid en de artefacten zijn geüpload naar de S3-bucket.
Uitzicht op de S3-bak
Het WAR-bestand kan nu worden gebruikt voor implementatie op de juiste applicatieservers.
Jenkins-integratie met AWS CodeBuild
Zoals we zagen in tutorial # 1 van deze serie over hoe Jenkins werd geconfigureerd met CodeCommit-repository voor het inschakelen van de continue integratie-activiteit. Aangezien de opslagplaats voor versiebeheer is geconfigureerd, kunt u nu een build activeren door de CodeBuild te integreren met dezelfde Jenkins-buildtaak.
De AWS CodeBuild-plug-in voor Jenkins moet worden geïnstalleerd voor integratie. U kunt het downloaden en installeren vanaf hier
Gebruik Jenkins => Beheer plug-ins om de plug-in te installeren.
Selecteer de AWS CodeBuild als de Build Environment en selecteer het juiste CodeBuild-project geconfigureerd in de AWS zoals hieronder weergegeven. De IAM-gebruikerstoegangssleutels en geheime sleutels moeten ook worden ingevoerd als onderdeel van de configuratie.
Het belangrijkste punt dat hier moet worden onthouden, is dat de build niet is geactiveerd in de on-premise-omgevingen, maar in de cloud. Het is dus niet nodig om build-servers in te richten.
Overzicht
Via deze tutorial kwamen we te weten hoe de CodeCommit-repository kan worden gebruikt om de code op te halen en een Maven-build uit te voeren met behulp van de CodeBuild-service.
hoe je een nieuw Java-bestand maakt in eclipse
De build kan ook worden geactiveerd door Jenkins. Het gegenereerde artefact, dat voornamelijk een WAR-bestand is, wordt vervolgens opgeslagen in de AWS S3-bucket.
In onze aanstaande tutorial zullen we zien hoe het WAR-bestand uit de S3-bucket kan worden gebruikt om de Tomcat-applicatieserver te implementeren met behulp van de AWS CodeDeploy-service.
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- Diepgaande Eclipse-zelfstudies voor beginners
- Gebruik van Maven Build Automation Tool en Maven Project Setup voor Selenium - Selenium Tutorial # 24
- SVN-zelfstudie: broncodebeheer met behulp van Subversion
- Tortoise SVN-zelfstudie: herzieningen in coderepository
- Top AWS DevOps-tools voor cloud-build en -implementatie
- AWS Elastic Beanstalk-zelfstudie voor het implementeren van .NET-webtoepassingen
- AWS CodeCommit-zelfstudie voor DevOps-implementatie in de cloud
- Bouw een applicatie met één pagina met AngularJS (zelfstudie met voorbeeld)