working aws codedeploy devops tool
Vodič o automatiziranoj implementaciji pomoću AWS CodeDeploya:
U Dio 2 alata AWS DevOps , vidjeli smo kako je usluga CodeBuild korištena za izgradnju J2EE projekta pomoću Mavena.
U ovom uputstvu vidjet ćemo kako se WAR datoteka artefakta koja je pohranjena u segmentu S3 može koristiti za postavljanje na poslužitelj aplikacija Tomcat pomoću usluge CodeDeploy.
Odjava => Idealan vodič za DevOps trening
AWS CodeDeploy usluga je implementacije koja automatizira postavljanje aplikacije na instance Amazon EC2 Linux ili Windows.
Ovaj će vodič također objasniti kako Jenkins može biti integriran s CodeDeployom.
Preduvjet:
- Račun s AWS-om po mogućnosti besplatni.
- Dobra i brza internetska veza.
- AWS regija koja se koristi - Azijsko-pacifički region (Singapur).
- Primjer Amazon Linux ili RHEL EC2.
- Tomcat instaliran na instanci EC2.
Bilješka: Da bi se rasporedio sadržaj, AWS spremište CodeCommit nije podržano za uslugu CodeDeploy. Podržani su samo S3 i GitHub.
Što ćete naučiti:
- Postavljanje CodeDeploy
- Pokrenite Amazon Linux EC2 Instance
- Integriranje AWS CodeDeploya sa S3
- Izradite aplikaciju CodeDeploy
- Jenkinsova integracija s AWS CodeDeployom
- Zaključak
- Preporučena literatura
Postavljanje CodeDeploy
AWS CodeDeploy morat će raditi naime s dva entiteta za pristup instanci EC2 i segmentu S3 u kojem su artefakti (WAR datoteka) pohranjeni za implementaciju. Da bi se usluzi CodeDeploy omogućilo pristup tim IAM-ima, morat će se postaviti uloge. IAM uloge nisu definirane za IAM korisnike, ali imaju pristup samo entitetima.
# 1) Stvorite prva uloga za uslugu CodeDeploy za pristup instanci EC2.
kako otvoriti .jar datoteke windows 10
Pokrenite IAM i kliknite na Uloge-> Stvori ulogu.
Pod, ispod AWS usluga kliknite na EC2 -> Odaberite svoj slučaj upotrebe -> EC2 i kliknite na Dalje-> Dopuštenja.
Odaberite AWSCodeDeployRole pod Naziv pravila i kliknite Dalje-> Pregled.
Unesite ime uloge i kliknite na Stvori ulogu.
Na kraju, uredite odnos povjerenja za ovu ulogu kako biste osigurali da je usluga CodeDeploy dostupna u cjelini ili određenim regijama / krajnjim točkama.
Kliknite ulogu i ažurirajte odnos povjerenja kao što je prikazano u nastavku.
U politici promijenite EC2 u Codedeploy i kliknite na Ažurirajte Pravila o povjerenju.
dva) Stvorite druga uloga za instancu EC2 koja koristi uslugu CodeDeploy za pristup segmentu S3.
Ponovite gornje korake za ovu ulogu i unesite kao dolje:
- Ići IAM -> Uloge -> Stvori ulogu.
- Pod AWS Service odaberite EC2.
- Ispod toga ponovo odaberite slučaj upotrebe i kliknite na EC2 i kliknite gumb Dalje-> Dopuštenja.
- Na zaslonu pravila o dopuštenju privitka odaberite AmazonS3ReadOnlyAccess i kliknite gumb Dalje-> Pregled.
- Imenujte ulogu HW-Codedeploy-EC2-S3 i kliknite na Stvori ulogu.
Obje bi uloge sada trebale biti dostupne.
Pokrenite Amazon Linux EC2 Instance
U ovom odjeljku sada pružamo primjerak EC2.
Tijekom pripreme instance obavezno odaberite ulogu HW-Codedeploy-EC2-S3 tijekom Konfigurirajte detalje instance korak. Također, osigurajte otvoreni port 8080.
Uz ovo, trebat ćemo i instalirati Agent CodeDeploy i Tomcat kao poslužitelj aplikacija koji će se koristiti za postavljanje naše aplikacije.
# 1) Instalirajte i konfigurirajte agent CodeDeploy na instanci Amazon Linux
Agent CodeDeploy pomaže u implementacijama i mora biti instaliran u svim instancama (okruženjima) u kojima će se implementacija izvršiti.
Prijavite se na instancu Linuxa i preuzmite agent prema regiji koja se koristi. U našem slučaju to je regija Singapur gdje je identifikator ap-jugoistok-1.
Naredba za preuzimanje agenta bila bi u formatu:
wget https: // aws-codedeploy-. s3.amazonaws.com/latest/install
# 2) Instalirajte Tomcat na instanci EC2
- Da biste instalirali i pokrenuli Tomcat, učinite sljedeće korake u redoslijedu.
yum instalirati tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Omogućite tomcat korisnika za upravitelj aplikacija. Izvršite promjene kao što je prikazano u datoteci /etc/tomcat7/tomcat-users.xml
- Na kraju, pokrenite Tomcat uslugu.
usluga tomcat7 start
- Pokrenite Tomcat upravitelj web aplikacija i provjerite radi li pomoću URL-a http: //: 8080 / manager
Integriranje AWS CodeDeploya sa S3
Kao što je spomenuto u 2. dijelu, CodeDeploy podržava samo S3 i GitHub kao spremište koda koji se koristi za postavljanje najnovijih verzija aplikacije. Budući da je naša aplikacija WAR datoteka pohranjena u S3 segmentu, moramo osigurati da održavani format bude ZIP datoteka.
To znači da bi se WAR datoteka trebala nalaziti u ZIP datoteci, što podržava proces implementacije pomoću CodeDeploya.
- AWS CLI (sučelje naredbenog retka) također mora biti instaliran na instanci Linuxa. Molimo pogledajte URL instalirati.
- Pokrenite sljedeće korake u instanci Linuxa da biste preuzeli WAR iz segmenta S3. Sljedeće korake obično je potrebno izvršiti na stroju za izradu.
postavite AWS_ACCESS_KEY_ID =
postavite AWS_SECRET_ACCESS_KEY =
postavite AWS_DEFAULT_REGION = ap-jugoistok-1
cd / opt / niranjan
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy koristi appspec.yml datoteka koja sadrži upute za postavljanje na instance EC2. Ova datoteka mora biti u korijenu mape u koju se preuzima WAR datoteka aplikacije.
Stvorite datoteku appspec.yml i mapu skripti kao što je prikazano dolje:
Događaji se tijekom postavljanja izvode slijedećim redoslijedom.
# 1) ApplicationStop
# 2) Prije instaliranja
# 3) Instalacija (poziva se odjeljak datoteka i kopira se WAR datoteka)
# 4) ApplicationStart
- Hijerarhija mapa koja se koristi je
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
skripte
start_application
stop_application
uninstall_war_file
- Sadržaj skripti
stop_application:
curl –korisnik tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/stop?path=/AWS-HelloWorld-1.0.0
koje su sve web lokacije e-pošte
start_application:
curl –korisnik 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
- ZIP arhivirajte sadržaj i prenesite ZIP datoteku u S3 skupinu. Provjerite je li VERSIONING omogućen na segmentu.
zip –r AWS-HelloWorld-1.0.0.war.zip AWS-HelloWorld-1.0.0.war appspec.yml skripte
kako deklarirati povezani popis u javi -
aws s3 cp /opt/niranjan/AWS-HelloWorld-1.0.0.war.zip
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
ZIP datoteka prenesena u S3 segment prikazana je na donjem zaslonu:
Umjesto pokretanja naredbi jednu po jednu, možete stvoriti izvršnu skriptu i u nju dodati gornje naredbe i pokretati je svaki put kad je nova aplikacija WAR datoteka dostupna iz gradnje.
Izradite aplikaciju CodeDeploy
Aplikacija CodeDeploy kreirana je kako bi se osiguralo da je pravilna revizija WAR datoteke postavljena u odgovarajuće okruženje koje je instanca EC2.
Pokrenite uslugu CodeDeploy i kliknite na Izradite aplikaciju dugme.
Unesite naziv aplikacije, grupu za implementaciju ( Primjer: QA-Env) i odaberite pokrenute instance EC2.
Na kraju obrasca odaberite uslužnu ulogu. Ovo je druga uloga koja je stvorena ranije u vodiču.
Klikni na Izradite aplikaciju dugme.
Odaberite grupu za postavljanje (QA-Env) i odaberite Radnje -> Primijeni novu reviziju.
Budući da se ZIP datoteka nalazi u segmentu S3, unesite mjesto revizije na sljedeći način:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Klikni na Rasporediti dugme. Implementacija je uspješna, kao što je prikazano u nastavku.
Datoteka WAR uspješno se kopira u direktorij tomcat webapps.
Pregledajte URL aplikacije kako biste bili sigurni da je aplikacija uspješno postavljena.
Jenkinsova integracija s AWS CodeDeployom
Kao što smo vidjeli u prethodna 2 vodiča, Jenkins se vrlo dobro integrira s AWS DevOps alatima. Da biste integrirali Jenkinsa s CodeDeployom, treba instalirati dodatak. Klik ovdje za preuzimanje i instaliranje dodatka CodeDeploy.
Prvo unesite pristupni i tajni ključ za IAM korisnika Jenkins -> Konfiguracija .
Zaključak
Do sada smo vidjeli kako se CodeDeploy može koristiti za automatizaciju postavljanja WAR datoteke J2EE aplikacije pohranjene u S3 segmentu na EC2 instancu koja radi na poslužitelju aplikacija tomcat.
Niz od ova tri alata, tj. CodeCommit, CodeBuild i CodeDeploy pomažu u aspektima kontinuirane integracije i kontinuirane isporuke DevOps-a. Uz ova 3 alata, AWS CodePipeline je još jedan alat koji na kraju pomaže u vizualizaciji isporuke aplikacija.
Pratite naš nadolazeći vodič da biste saznali više o implementaciji .NET web aplikacija na AWS pomoću Elastic Beanstalka.
Preporučena literatura
- Vrhunski AWS DevOps alati za izradu i implementaciju u oblaku
- Kontinuirano postavljanje u DevOps
- AWS CodeCommit Vodič za implementaciju DevOpsa u oblaku
- Kontinuirana isporuka u DevOpsu
- Kontinuirano testiranje u DevOpsu
- Važnost malih povećanja isporuka u DevOpsu
- AWS CodeBuild Tutorial: Izdvajanje koda iz Maven Build-a
- DevOps automatizacija: Kako se automatizacija primjenjuje u praksi DevOps