working aws codedeploy devops tool
Tutorial privind implementarea automată utilizând AWS CodeDeploy:
În Partea 2 a instrumentelor AWS DevOps Am văzut cum a fost utilizat serviciul CodeBuild pentru a construi proiectul J2EE folosind Maven.
În acest tutorial, vom vedea cum fișierul WAR artefact care este stocat în bucket-ul S3 poate fi utilizat pentru implementare pe serverul de aplicații Tomcat folosind serviciul CodeDeploy.
Verificați => Ghid ideal pentru instruirea DevOps
AWS CodeDeploy este serviciul de implementare care automatizează implementarea aplicației în instanțele Amazon EC2 Linux sau Windows.
Acest tutorial va explica, de asemenea, modul în care Jenkins poate fi integrat cu CodeDeploy.
Pre-cerință:
- Contați AWS, de preferință un nivel gratuit.
- Conexiune bună și rapidă la internet.
- Regiunea AWS utilizată - Asia Pacific (Singapore).
- Instanță Amazon Linux sau RHEL EC2.
- Tomcat instalat pe instanța EC2.
Notă: Pentru a implementa conținutul, depozitul AWS CodeCommit nu este acceptat pentru serviciul CodeDeploy. Sunt acceptate doar S3 și GitHub.
Ce veți învăța:
- Setup CodeDeploy
- Lansați instanța Amazon Linux EC2
- Integrarea AWS CodeDeploy cu S3
- Creați aplicația CodeDeploy
- Integrarea Jenkins cu AWS CodeDeploy
- Concluzie
- Lectură recomandată
Setup CodeDeploy
AWS CodeDeploy va trebui să funcționeze și anume cu două entități pentru a accesa instanța EC2 și bucket-ul S3 în care sunt stocate artefactele (fișierul WAR) pentru implementare. Pentru a oferi permisiunea serviciului CodeDeploy de a accesa acele IAM, rolurile vor trebui configurate. Rolurile IAM nu sunt definite pentru utilizatorii IAM, dar au acces doar la entități.
# 1) Creați primul rol pentru serviciul CodeDeploy pentru a accesa instanța EC2.
Lansați IAM și faceți clic pe Roluri-> Creați rol.
Sub Serviciul AWS Click pe EC2 -> Selectați cazul dvs. de utilizare -> EC2 și faceți clic pe Următorul-> Permisiuni.
Selectează AWSCodeDeployRole sub Nume politică și faceți clic Următor-> Recenzie.
Introduceți un nume de rol și faceți clic pe Creați un rol.
În cele din urmă, modificați relația de încredere pentru acest rol pentru a vă asigura că serviciul CodeDeploy este accesibil în general sau la anumite regiuni / puncte finale.
referință nedefinită la c ++ principal
Faceți clic pe rol și actualizați relația de încredere așa cum se arată mai jos.
În politică, schimbați EC2 în Codedeploy și faceți clic pe Actualizați politica de încredere.
2) Creați al doilea rol pentru instanța EC2 folosind serviciul CodeDeploy pentru a accesa bucket-ul S3.
Repetați pașii de mai sus pentru acest rol și introduceți după cum urmează:
- Mergi la IAM -> Roluri -> Creați rol.
- Sub AWS Service, selectați EC2.
- Sub aceasta Selectați din nou cazul dvs. de utilizare și faceți clic pe EC2 și faceți clic pe buton Următorul-> Permisiuni.
- În ecranul de politică de autorizare atașare, selectați AmazonS3ReadOnlyAccess și faceți clic pe buton Următor-> Recenzie.
- Denumiți rolul HW-Codedeploy-EC2-S3 și faceți clic pe Creați un rol.
Ambele roluri ar trebui să fie disponibile acum.
Lansați instanța Amazon Linux EC2
În această secțiune, oferim acum instanța EC2.
În timp ce provizionați instanța, asigurați-vă că selectați rolul HW-Codedeploy-EC2-S3 pe parcursul Configurați detaliile instanței Etapa. De asemenea, asigurați-vă că deschideți portul 8080.
Odată cu aceasta, va trebui să instalăm Agent CodeDeploy și Tomcat ca server de aplicații care va fi utilizat pentru implementarea aplicației noastre.
# 1) Instalați și configurați CodeDeploy Agent pe instanța Amazon Linux
Agentul CodeDeploy ajută la implementări și trebuie instalat în fiecare instanță (medii) în care se va realiza implementarea.
Conectați-vă la instanța Linux și descărcați agentul conform regiunii utilizate. În cazul nostru, identificatorul este regiunea Singapore ap-sud-est-1.
Comanda pentru descărcarea agentului va fi în formatul:
wget https: // aws-codedeploy-. s3.amazonaws.com/latest/install
# 2) Instalați Tomcat pe instanța EC2
- Pentru a instala și rula Tomcat, urmați pașii următori în ordine.
instalează tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Activați utilizatorul tomcat pentru managerul de aplicații. Efectuați modificările așa cum se arată în fișierul /etc/tomcat7/tomcat-users.xml
- În cele din urmă, porniți serviciul Tomcat.
service tomcat7 start
- Lansa Manager aplicații web Tomcat și verificați dacă funcționează utilizând adresa URL http: //: 8080 / manager
Integrarea AWS CodeDeploy cu S3
După cum sa menționat în partea 2, CodeDeploy acceptă doar S3 și GitHub ca depozit de cod, care este utilizat pentru a implementa cele mai recente versiuni ale aplicației. Deoarece fișierul WAR al aplicației noastre este stocat în bucket S3, trebuie să ne asigurăm că formatul menținut este un fișier ZIP.
Aceasta înseamnă că fișierul WAR ar trebui să se afle într-un fișier ZIP, ceea ce este susținut de procesul de implementare folosind CodeDeploy.
- AWS CLI (interfață linie de comandă) trebuie, de asemenea, să fie instalată pe instanța Linux. Vă rugăm să consultați URL a instala.
- Rulați pașii următori în instanța Linux pentru a descărca WAR din bucket-ul S3. Următorii pași trebuie să fie efectuați în mod normal pe mașina de construcție.
set AWS_ACCESS_KEY_ID =
set AWS_SECRET_ACCESS_KEY =
set AWS_DEFAULT_REGION = ap-sud-est-1
cd / opt / niranjan
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy utilizează un appspec.yml fișier care conține instrucțiuni de implementare către instanțele EC2. Acest fișier trebuie să fie în rădăcina unui folder de unde este descărcat fișierul WAR al aplicației.
Creați fișierul appspec.yml și folderul de scripturi așa cum se arată mai jos:
Evenimentele se desfășoară în următoarea ordine în timpul implementării.
# 1) ApplicationStop
# 2) Înainte de instalare
# 3) Instalare (secțiunea de fișiere este apelată și fișierul WAR copiat)
# 4) Începeți aplicația
- Ierarhia de dosare utilizată este
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
scripturi
start_application
stop_application
uninstall_war_file
- Conținutul scripturilor
stop_application:
curl –user 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_application:
curl –user tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/start?path=/AWS-HelloWorld-1.0.0
uninstall_war_file
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0.war
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0
- Înscrieți conținutul ZIP și încărcați fișierul ZIP în cupa S3. Asigurați-vă că VERSIONING este activat pe cupă.
zip –r AWS-HelloWorld-1.0.0.war.zip Scripturi AWS-HelloWorld-1.0.0.war appspec.yml
aws s3 cp /opt/niranjan/AWS-HelloWorld-1.0.0.war.zip
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Fișierul ZIP încărcat în cupa S3 este așa cum se vede în ecranul de mai jos:
În loc să rulați comenzile una câte una, puteți crea un script executabil și puteți adăuga comenzile de mai sus în acesta și îl puteți rula de fiecare dată când un nou fișier WAR al aplicației este disponibil din versiune.
Creați aplicația CodeDeploy
Aplicația CodeDeploy este creată pentru a se asigura că revizuirea corectă a fișierului WAR este implementată în mediul adecvat, care este instanța EC2.
Lansați serviciul CodeDeploy și faceți clic pe Creați aplicație buton.
Introduceți numele aplicației, grupul de implementare ( Exemplu: QA-Env) și selectați instanțele EC2 care rulează.
La sfârșitul formularului, selectați rolul de serviciu. Acesta este celălalt rol care a fost creat mai devreme în tutorial.
Faceți clic pe Creați aplicație buton.
Selectați Grupul de implementare (QA-Env) și selectați Acțiuni -> Implementați o nouă versiune.
Deoarece fișierul ZIP se află în cupa S3, introduceți locația de revizuire după cum urmează:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Faceți clic pe Implementați buton. Implementarea are succes așa cum se arată mai jos.
Fișierul WAR este copiat cu succes în directorul tomcat webapps.
Răsfoiți adresa URL a aplicației pentru a vă asigura că aplicația este implementată cu succes.
Integrarea Jenkins cu AWS CodeDeploy
După cum am văzut în cele 2 tutoriale anterioare, Jenkins se integrează foarte bine cu instrumentele AWS DevOps. Pentru a integra Jenkins cu CodeDeploy, trebuie instalat pluginul. Clic Aici pentru a descărca și instala pluginul CodeDeploy.
Mai întâi introduceți cheia de acces și secretă pentru utilizatorul IAM Jenkins -> Configurare .
Concluzie
Până acum am văzut cum CodeDeploy poate fi utilizat pentru automatizarea implementării unui fișier WAR al aplicației J2EE stocat în bucket S3 în instanța EC2 care rulează serverul de aplicații tomcat.
Seria acestor trei instrumente, adică CodeCommit, CodeBuild și CodeDeploy ajută la integrarea continuă și la aspectele de livrare continuă ale DevOps. Împreună cu aceste 3 instrumente, AWS CodePipeline este un alt instrument care ajută la vizualizarea finală a livrării aplicației.
Rămâneți la curent cu următorul nostru tutorial pentru a afla mai multe despre implementarea aplicației web .NET în AWS utilizând Elastic Beanstalk.
Lectură recomandată
- Cele mai importante instrumente AWS DevOps pentru Cloud Build și implementare
- Implementare continuă în DevOps
- Tutorial AWS CodeCommit pentru implementarea DevOps în cloud
- Livrare continuă în DevOps
- Testare continuă în DevOps
- Importanța micilor creșteri ale livrărilor în DevOps
- Tutorial AWS CodeBuild: Extragerea codului din Maven Build
- DevOps Automation: Cum se aplică automatizarea în DevOps Practice