working aws codedeploy devops tool
Tutorial om automatiseret implementering ved hjælp af AWS CodeDeploy:
I Del 2 af AWS DevOps-værktøjerne , så vi, hvordan CodeBuild-tjenesten blev brugt til at opbygge J2EE-projektet ved hjælp af Maven.
I denne vejledning vil vi se, hvordan den artefakt WAR-fil, der er gemt i S3-skovlen, kan bruges til distribution til Tomcat-applikationsserver ved hjælp af CodeDeploy-tjenesten.
Tjek ud => Ideel guide til DevOps-træning
AWS CodeDeploy er implementeringstjenesten, der automatiserer implementeringen af applikationen til Amazon EC2 Linux- eller Windows-forekomster.
Denne tutorial forklarer også, hvordan Jenkins kan integreres med CodeDeploy.
Forudsætning:
- Konto med AWS helst et gratis niveau.
- God og hurtig internetforbindelse.
- AWS-region brugt - Asien-Stillehavet (Singapore).
- Amazon Linux eller RHEL EC2-forekomst.
- Tomcat installeret på EC2-forekomsten.
Bemærk: For at implementere indholdet understøttes AWS CodeCommit-lager ikke til CodeDeploy-tjenesten. Kun S3 og GitHub understøttes.
Hvad du lærer:
- Setup CodeDeploy
- Start Amazon Linux EC2 Instance
- Integrering af AWS CodeDeploy med S3
- Opret CodeDeploy-applikation
- Jenkins-integration med AWS CodeDeploy
- Konklusion
- Anbefalet læsning
Setup CodeDeploy
AWS CodeDeploy skal arbejde, nemlig med to enheder for at få adgang til EC2-forekomsten og S3-spanden, hvor artefakterne (WAR-fil) er gemt til implementering. For at give tilladelse til, at CodeDeploy-tjenesten får adgang til disse IAM, skal der oprettes roller. IAM-roller er ikke defineret for IAM-brugere, men de har kun adgang til enhederne.
# 1) Opret første rolle for CodeDeploy-tjenesten for at få adgang til EC2-forekomsten.
Start IAM og klik på Roller-> Opret rolle.
Under AWS-service Klik på EC2 -> Vælg din brugssag -> EC2 og klik på Næste-> Tilladelser.
Vælg AWSCodeDeployRole under politiknavn og klik Næste-> Gennemgang.
Indtast et rollenavn, og klik på Opret rolle.
Endelig rediger tillidsforholdet for denne rolle for at sikre, at CodeDeploy-tjenesten er tilgængelig overordnet eller specifikke regioner / slutpunkter.
Spil wow gratis privat server
Klik på rollen og opdater tillidsforholdet som vist nedenfor.
I politikken skal du ændre EC2 til Codedeploy og klikke på Opdater tillidspolitik.
2) Opret anden rolle til EC2-forekomsten ved hjælp af CodeDeploy-tjenesten for at få adgang til S3-skovlen.
Gentag ovenstående trin for denne rolle, og indtast som nedenfor:
- Gå til IAM -> Roller -> Opret rolle.
- Vælg EC2 under AWS Service.
- Under det Vælg din brugssag igen, og klik på EC2 og klik på knappen Næste-> Tilladelser.
- På skærmbilledet for politik om vedhæftede tilladelser skal du vælge AmazonS3ReadOnlyAccess og klik på knappen Næste-> Gennemgang.
- Navngiv rollen HW-Codedeploy-EC2-S3 og klik på Opret rolle.
Begge roller skal nu være tilgængelige.
Start Amazon Linux EC2 Instance
I dette afsnit tilvejebringer vi nu EC2-forekomsten.
Sørg for at vælge rollen, mens du opretter forekomsten HW-Codedeploy-EC2-S3 i løbet af Konfigurer instansdetaljer trin. Sørg også for at lave åben port 8080.
Sammen med dette skal vi også installere CodeDeploy-agent og Tomcat som en applikationsserver, der vil blive brugt til implementering af vores applikation.
# 1) Installer og konfigurer CodeDeploy Agent på Amazon Linux-forekomsten
CodeDeploy-agent hjælper med implementeringer og skal installeres i alle tilfælde (miljøer), hvor implementeringen skal udføres.
Log ind på Linux-forekomsten, og download agenten i henhold til den anvendte region. I vores tilfælde er det Singapore-regionen, hvor identifikatoren er ap-sydøst-1.
Kommandoen til at downloade agenten ville være i formatet:
wget https: // aws-kodet implementering-. s3.amazonaws.com/latest/install
# 2) Installer Tomcat på EC2-forekomsten
- For at installere og køre Tomcat skal du gøre følgende i rækkefølgen.
yum installer tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Aktivér tomcat-brugeren til applikationsadministratoren. Foretag ændringerne som vist i filen /etc/tomcat7/tomcat-users.xml
- Endelig skal du starte Tomcat-tjenesten.
service tomcat7 start
- Start Tomcat Web Application Manager og kontroller, om det fungerer ved hjælp af URL'en http: //: 8080 / manager
Integrering af AWS CodeDeploy med S3
Som nævnt i del 2 understøtter CodeDeploy kun S3 og GitHub som kodelager, der bruges til at implementere de nyeste versioner af applikationen. Da vores applikations WAR-fil er gemt i S3-bucket, skal vi sikre, at det vedligeholdte format er en ZIP-fil.
Dette betyder, at WAR-filen skal være i en ZIP-fil, hvilket er det, der understøttes af implementeringsprocessen ved hjælp af CodeDeploy.
- AWS CLI (kommandolinjegrænseflade) skal også installeres på Linux-forekomsten. Se venligst URL at installere.
- Kør følgende trin i Linux-forekomsten for at downloade WAR fra S3-spanden. Følgende trin skal normalt udføres på byggemaskinen.
indstil AWS_ACCESS_KEY_ID =
indstil AWS_SECRET_ACCESS_KEY =
indstil AWS_DEFAULT_REGION = ap-sydøst-1
cd / opt / niranjan
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy bruger en appspec.yml fil, der indeholder installationsinstruktioner til EC2-forekomsterne. Denne fil skal være i roden af en mappe, hvor applikationen WAR-fil downloades.
Opret appspec.yml-filen og scripts-mappen som vist nedenfor:
Begivenhederne kører i følgende rækkefølge under implementeringen.
# 1) ApplicationStop
# 2) BeforeInstall
# 3) Installer (filafsnittet kaldes og WAR-filen kopieres)
# 4) ApplicationStart
- Det anvendte mappehierarki er
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
scripts
start_applikation
stop_applikation
afinstallere_fil_fil
- Scripts indhold
stop_application:
krølle –bruger tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/stop?path=/AWS-HelloWorld-1.0.0
start_applikation:
krølle –bruger tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/start?path=/AWS-HelloWorld-1.0.0
afinstallere_fil_fil
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0.war
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0
- ZIP indholdet, og upload ZIP-filen til S3-spanden. Sørg for, at VERSIONING er aktiveret på skovlen.
zip –r AWS-HelloWorld-1.0.0.war.zip AWS-HelloWorld-1.0.0.war appspec.yml-scripts
aws s3 cp /opt/niranjan/AWS-HelloWorld-1.0.0.war.zip
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
ZIP-fil uploadet til S3-skovlen ses som vist på nedenstående skærmbillede:
I stedet for at køre kommandoerne en efter en kan du oprette et eksekverbart script og tilføje ovenstående kommandoer til det og køre det hver gang, når en ny applikations WAR-fil er tilgængelig fra build.
Opret CodeDeploy-applikation
CodeDeploy-applikationen oprettes for at sikre, at korrekt revision af WAR-filen distribueres til det relevante miljø, der er EC2-forekomsten.
Start CodeDeploy-tjenesten, og klik på Opret applikation knap.
Indtast applikationsnavn, implementeringsgruppe ( Eksempel: QA-Env), og vælg de EC2-forekomster, der kører.
I slutningen af formularen skal du vælge service-rollen. Dette er den anden rolle, som blev oprettet tidligere i vejledningen.
Klik på Opret applikation knap.
Vælg Deployment Group (QA-Env), og vælg Handlinger -> Implementere ny revision.
Da ZIP-filen er i S3-bucket, skal du indtaste Revision-placeringen som følger:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Klik på Indsætte knap. Implementeringen er vellykket som vist nedenfor.
WAR-filen kopieres med succes til kataloget tomcat webapps.
Gennemse programmets URL for at sikre, at applikationen implementeres med succes.
Jenkins-integration med AWS CodeDeploy
Som vi har set i tidligere 2 tutorials, integrerer Jenkins meget godt med AWS DevOps-værktøjer. For at integrere Jenkins med CodeDeploy skal pluginnet installeres. Klik på her for at downloade og installere CodeDeploy-pluginet.
Indtast først adgangs- og hemmelig nøgle for IAM-brugeren i Jenkins -> Konfiguration .
Konklusion
Indtil videre så vi, hvordan CodeDeploy kan bruges til at automatisere implementeringen af en J2EE-applikations-WAR-fil, der er gemt i S3-bucket til EC2-forekomsten, der kører tomcat-applikationsserver.
Serien af disse tre værktøjer, dvs. CodeCommit, CodeBuild og CodeDeploy hjælper med kontinuerlig integration og kontinuerlige leveringsaspekter af DevOps. Sammen med disse 3 værktøjer er AWS CodePipeline et andet værktøj, der i sidste ende hjælper visualisering af applikationsleveringen.
Hold øje med vores kommende vejledning for at vide mere om .NET-webapplikation implementering til AWS ved hjælp af Elastic Beanstalk.
PREV-vejledning | NÆSTE vejledning
Anbefalet læsning
- Top AWS DevOps-værktøjer til Cloud Build og Deployment
- Kontinuerlig implementering i DevOps
- AWS CodeCommit-vejledning til DevOps-implementering i Cloud
- Kontinuerlig levering i DevOps
- Kontinuerlig test i DevOps
- Betydningen af små leveringssteg i DevOps
- AWS CodeBuild-vejledning: Uddrag af kode fra Maven Build
- DevOps-automatisering: Hvordan anvendes automatisering i DevOps-praksis