working aws codedeploy devops tool
Tutorial sobre el desplegament automatitzat mitjançant AWS CodeDeploy:
En Part 2 de les eines AWS DevOps , vam veure com s’utilitzava el servei CodeBuild per construir el projecte J2EE mitjançant Maven.
En aquest tutorial, veurem com es pot utilitzar el fitxer WAR artefacte que s’emmagatzema al dipòsit S3 per al desplegament al servidor d’aplicacions Tomcat mitjançant el servei CodeDeploy.
Consulteu => Guia ideal per a la formació DevOps
AWS CodeDeploy és el servei de desplegament que automatitza el desplegament de l'aplicació a les instàncies Amazon EC2 Linux o Windows.
Aquest tutorial també explicarà com es pot integrar Jenkins amb CodeDeploy.
Prerequisit:
- Compteu amb AWS preferiblement un nivell gratuït.
- Connexió a Internet bona i ràpida.
- Regió AWS utilitzada: Àsia Pacífic (Singapur).
- Instància Amazon Linux o RHEL EC2.
- Tomcat instal·lat a la instància EC2.
Nota: Per tal de desplegar el contingut, el servei AWD CodeCommit no s'admet al servei CodeDeploy. Només s’admeten S3 i GitHub.
Què aprendreu:
- Configuració de CodeDeploy
- Inicieu Amazon Linux EC2 Instance
- Integració d’AWS CodeDeploy amb S3
- Creeu una aplicació CodeDeploy
- Integració de Jenkins amb AWS CodeDeploy
- Conclusió
- Lectura recomanada
Configuració de CodeDeploy
AWS CodeDeploy haurà de treballar amb dues entitats per accedir a la instància EC2 i al dipòsit S3 on s’emmagatzemen els artefactes (fitxer WAR) per al desplegament. Per tal de proporcionar permís al servei CodeDeploy per accedir a aquests IAM, caldrà configurar les funcions. Els rols IAM no estan definits per als usuaris d'IAM, però només tenen accés a les entitats.
# 1) Creeu el fitxer primer paper per al servei CodeDeploy per accedir a la instància EC2.
Inicieu IAM i feu clic a Funcions-> Crea un rol.
Sota Servei AWS fer clic a EC2 -> Seleccioneu el vostre cas d'ús -> EC2 i feu clic a Següent-> Permisos.
Seleccioneu el fitxer AWSCodeDeployRole a Nom de la política i feu clic a Següent-> Ressenya.
Introduïu un nom de rol i feu clic a Crea un rol.
Finalment, editeu la relació de confiança per a aquesta funció per assegurar-vos que el servei CodeDeploy sigui accessible en general o en regions o punts finals específics.
Feu clic al rol i actualitzeu la relació de confiança tal com es mostra a continuació.
A la política, canvieu EC2 a Codedeploy i feu clic a Actualitza la política de confiança.
2) Creeu el fitxer segon paper per a la instància EC2 que utilitza el servei CodeDeploy per accedir al dipòsit S3.
Repetiu els passos anteriors per a aquesta funció i introduïu el següent:
- Anar a IAM -> Rols -> Crea un rol.
- A AWS Service, seleccioneu EC2.
- A sota, seleccioneu el vostre cas d'ús de nou i feu clic a EC2 i feu clic al botó Següent-> Permisos.
- A la pantalla de política de permisos adjunts, seleccioneu AmazonS3ReadOnlyAccess i feu clic al botó Següent-> Ressenya.
- Anomeneu el rol HW-Codedeploy-EC2-S3 i feu clic al botó Crea un rol.
Ara els dos rols haurien d’estar disponibles.
Inicieu Amazon Linux EC2 Instance
En aquesta secció, ara subministrem la instància EC2.
Mentre aprovisioneu la instància, assegureu-vos de seleccionar el rol HW-Codedeploy-EC2-S3 durant Configureu els detalls de la instància pas. A més, assegureu-vos de fer el port obert 8080.
estructura de dades d’arbre c ++
Juntament amb això, també haurem d'instal·lar Agent CodeDeploy i Tomcat com a servidor d'aplicacions que s'utilitzarà per al desplegament de la nostra aplicació.
# 1) Instal·leu i configureu l'agent CodeDeploy a la instància d'Amazon Linux
L’agent CodeDeploy ajuda als desplegaments i s’ha d’instal·lar a totes les instàncies (entorns) on es realitzarà el desplegament.
Inicieu sessió a la instància de Linux i descarregueu l'agent segons la regió que s'utilitza. En el nostre cas, és la regió de Singapur on es troba l’identificador ap-sud-est-1.
L'ordre per descarregar l'agent tindria el format següent:
wget https: // aws-codedeploy-. s3.amazonaws.com/latest/install
# 2) Instal·leu Tomcat a la instància EC2
- Per instal·lar i executar Tomcat, seguiu els passos següents en l'ordre.
instal·leu tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Activeu l'usuari tomcat per al gestor d'aplicacions. Feu els canvis tal com es mostra al fitxer /etc/tomcat7/tomcat-users.xml
- Per últim, inicieu el servei Tomcat.
servei Tomcat7 d'inici
- Llançament Gestor d'aplicacions web Tomcat i comproveu si funciona amb l'URL http: //: 8080 / manager
Integració d’AWS CodeDeploy amb S3
Com s'ha esmentat a la part 2, CodeDeploy només admet S3 i GitHub com a dipòsit de codi que s'utilitza per desplegar les darreres versions de l'aplicació. Com que el nostre fitxer WAR de l’aplicació s’emmagatzema al dipòsit S3, hem de garantir que el format mantingut sigui un fitxer ZIP.
preguntes d’entrevistes sobre proves de serveis web
Això vol dir que el fitxer WAR hauria d'estar en un fitxer ZIP, que és el que admet el procés de desplegament mitjançant CodeDeploy.
- També cal instal·lar AWS CLI (interfície de línia d’ordres) a la instància de Linux. Consulteu el document URL instal · lar.
- Executeu els passos següents a la instància de Linux per descarregar WAR des del dipòsit S3. Els passos següents normalment s'han de fer a la màquina de construcció.
defineix AWS_ACCESS_KEY_ID =
defineix 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 utilitza un fitxer appspec.yml que conté instruccions de desplegament a les instàncies EC2. Aquest fitxer ha d'estar a l'arrel d'una carpeta on es descarrega el fitxer WAR de l'aplicació.
Creeu el fitxer appspec.yml i la carpeta de scripts tal com es mostra a continuació:
Els esdeveniments s'executen en l'ordre següent durant el desplegament.
# 1) ApplicationStop
# 2) Abans d’instal·lar
# 3) Instal·lar (es diu la secció de fitxers i es copia un fitxer WAR)
# 4) ApplicationStart
- La jerarquia de carpetes utilitzada és
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
scripts
aplicació_inici
stop_application
uninstall_war_file
- Continguts dels scripts
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
aplicació_inici:
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
- Comprimiu el contingut ZIP i pengeu el fitxer ZIP al dipòsit S3. Assegureu-vos que VERSIONING estigui habilitat al dipòsit.
zip –r AWS-HelloWorld-1.0.0.war.zip Scripts 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
convertidor gratuït de youtube a mp3 premium
El fitxer ZIP penjat al dipòsit S3 es mostra a la pantalla següent:
En lloc d'executar les ordres una per una, podeu crear un script executable i afegir-hi les ordres anteriors i executar-lo cada vegada que hi hagi disponible un fitxer WAR d'aplicació nou a la versió.
Creeu una aplicació CodeDeploy
L'aplicació CodeDeploy es crea per garantir que la revisió adequada del fitxer WAR es desplega a l'entorn adequat, que és la instància EC2.
Inicieu el servei CodeDeploy i feu clic a Crea una aplicació botó.
Introduïu el nom de l'aplicació, el grup de desplegament ( Exemple: QA-Env) i seleccioneu les instàncies EC2 en execució.
Al final del formulari, seleccioneu la funció de servei. Aquest és l'altre paper que es va crear anteriorment al tutorial.
Feu clic al botó Crea una aplicació botó.
Seleccioneu el grup de desplegament (QA-Env) i seleccioneu Accions -> Desplegar una nova revisió.
Com que el fitxer ZIP es troba al dipòsit S3, introduïu la ubicació de revisió de la manera següent:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Feu clic al botó Desplegar botó. El desplegament té èxit com es mostra a continuació.
El fitxer WAR es copia correctament al directori tomcat webapps.
Cerqueu l'URL de l'aplicació per assegurar-vos que l'aplicació es desplega correctament.
Integració de Jenkins amb AWS CodeDeploy
Com hem vist en 2 tutorials anteriors, Jenkins s’integra molt bé amb les eines AWS DevOps. Per integrar Jenkins amb CodeDeploy, cal instal·lar el connector. Feu clic a aquí per descarregar i instal·lar el connector CodeDeploy.
En primer lloc, introduïu la clau d'accés i secreta per a l'usuari IAM Jenkins -> Configuració .
Conclusió
Fins ara hem vist com CodeDeploy es pot utilitzar per automatitzar el desplegament d'un fitxer WAR de l'aplicació J2EE emmagatzemat al dipòsit S3 a la instància EC2 que executa el servidor d'aplicacions tomcat.
La sèrie d’aquestes tres eines és a dir, CodeCommit, CodeBuild i CodeDeploy ajuden en aspectes d’Integració contínua i lliurament continu de DevOps. Juntament amb aquestes 3 eines, AWS CodePipeline és una altra eina que ajuda a visualitzar de cap a cap el lliurament de l’aplicació.
Estigueu atent al nostre proper tutorial per obtenir més informació sobre el desplegament d'aplicacions web .NET a AWS mitjançant Elastic Beanstalk.
Lectura recomanada
- Principals eines AWS DevOps per a la creació i el desplegament del núvol
- Desplegament continu a DevOps
- Tutorial AWS CodeCommit per a la implementació de DevOps al núvol
- Lliurament continu en DevOps
- Proves contínues en DevOps
- Importància de petits increments de lliuraments en DevOps
- Tutorial AWS CodeBuild: extracció de codi de Maven Build
- DevOps Automation: Com s'aplica l'automatització a la pràctica de DevOps