working aws codedeploy devops tool
Výukový program pre automatické nasadenie pomocou AWS CodeDeploy:
V 2. časť nástrojov AWS DevOps , videli sme, ako bola služba CodeBuild použitá na zostavenie projektu J2EE pomocou nástroja Maven.
V tomto tutoriáli uvidíme, ako je možné súbor WAR artefaktu, ktorý je uložený v segmente S3, použiť na nasadenie na aplikačný server Tomcat pomocou služby CodeDeploy.
Pozrite sa => Ideálny sprievodca tréningom DevOps
AWS CodeDeploy je služba nasadenia, ktorá automatizuje nasadenie aplikácie na inštancie Amazon EC2 Linux alebo Windows.
Tento tutoriál tiež vysvetlí, ako je možné integrovať Jenkins do CodeDeploy.
Predbežná požiadavka:
- Účet v službe AWS je najlepšie bezplatná.
- Dobré a rýchle pripojenie na internet.
- Použitý región AWS - Ázia a Tichomorie (Singapur).
- Inštitúcia Amazon Linux alebo RHEL EC2.
- Tomcat nainštalovaný na inštancii EC2.
Poznámka: Za účelom nasadenia obsahu nie je úložisko AWS CodeCommit pre službu CodeDeploy podporované. Podporované sú iba S3 a GitHub.
Čo sa dozviete:
- Nastaviť kódDeploy
- Spustite inštanciu Amazon Linux EC2
- Integrácia AWS CodeDeploy s S3
- Vytvorte aplikáciu CodeDeploy
- Jenkinsova integrácia s AWS CodeDeploy
- Záver
- Odporúčané čítanie
Nastaviť kódDeploy
AWS CodeDeploy bude musieť pracovať najmä s dvoma entitami na prístup k inštancii EC2 a segmentu S3, kde sú artefakty (súbor WAR) uložené na nasadenie. Aby bolo možné poskytnúť službe CodeDeploy prístup k týmto IAM, bude potrebné nastaviť roly. Roly IAM nie sú definované pre používateľov IAM, ale majú prístup iba k entitám.
# 1) Vytvorte prvá rola pre službu CodeDeploy na prístup k inštancii EC2.
Spustite IAM a kliknite na Roly-> Vytvoriť úlohu.
Pod Služba AWS kliknite na EC2 -> Vyberte prípad použitia -> EC2 a kliknite na Ďalej-> Povolenia.
Vyberte ikonu AWSCodeDeployRole v časti Názov politiky a kliknite na ikonu Ďalej-> Skontrolovať.
Zadajte názov roly a kliknite na Vytvorte rolu.
Na záver upravte vzťah dôveryhodnosti pre túto rolu, aby ste sa uistili, že je služba CodeDeploy prístupná celkovo alebo pre konkrétne oblasti / koncové body.
Kliknite na rolu a aktualizujte vzťah dôveryhodnosti, ako je uvedené nižšie.
V pravidlách zmeňte EC2 na Codedeploy a kliknite na Aktualizujte pravidlá dôveryhodnosti.
2) Vytvorte druhá rola pre inštanciu EC2 pomocou služby CodeDeploy na prístup k segmentu S3.
Zopakujte vyššie uvedené kroky pre túto rolu a zadajte ich nižšie:
- Ísť do IAM -> Roly -> Vytvoriť úlohu.
- V časti Služba AWS vyberte EC2.
- Pod tým Vyberte znova svoj prípad použitia a kliknite na EC2 a potom na tlačidlo Ďalej-> Povolenia.
- Na obrazovke s pravidlami priloženia povolení vyberte možnosť AmazonS3ReadOnlyAccess a kliknite na tlačidlo Ďalej-> Skontrolovať.
- Pomenujte rolu HW-Codedeploy-EC2-S3 a kliknite na ikonu Vytvorte rolu.
Teraz by mali byť k dispozícii obe roly.
Spustite inštanciu Amazon Linux EC2
V tejto časti teraz poskytujeme inštanciu EC2.
Počas poskytovania inštancie nezabudnite zvoliť rolu HW-Codedeploy-EC2-S3 počas Nakonfigurujte podrobnosti inštancie krok. Nezabudnite tiež vytvoriť otvorený port 8080.
Spolu s tým budeme musieť tiež nainštalovať Agent CodeDeploy a Tomcat ako aplikačný server, ktorý bude použitý na nasadenie našej aplikácie.
# 1) Nainštalujte a nakonfigurujte agenta CodeDeploy na inštancii systému Amazon Linux
c ++ generuje náhodné číslo medzi 0 a 1
Agent CodeDeploy pomáha pri nasadeniach a musí byť nainštalovaný v každej inštancii (prostredí), kde bude nasadenie vykonané.
Prihláste sa do inštancie systému Linux a stiahnite si agenta podľa použitej oblasti. V našom prípade ide o oblasť Singapuru, kde je identifikátor ap-juhovýchod-1.
Príkaz na stiahnutie agenta by mal formát:
wget https: // aws-codedeploy-. s3.amazonaws.com/latest/install
# 2) Nainštalujte Tomcat na inštanciu EC2
- Ak chcete nainštalovať a spustiť Tomcat, vykonajte nasledujúce kroky v uvedenom poradí.
inštalácia tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Povoliť používateľa Tomcat pre správcu aplikácií. Vykonajte zmeny, ako je uvedené v súbore /etc/tomcat7/tomcat-users.xml
- Nakoniec spustite službu Tomcat.
služba tomcat7 štart
- Spustiť Správca webových aplikácií Tomcat a skontrolujte, či funguje, pomocou adresy URL http: //: 8080 / manager
Integrácia AWS CodeDeploy s S3
Ako bolo uvedené v časti 2, program CodeDeploy podporuje iba S3 a GitHub ako úložisko kódov, ktoré sa používa na nasadenie najnovších verzií aplikácie. Pretože náš súbor WAR je uložený v priečinku S3, musíme sa ubezpečiť, že udržiavaný formát je súbor ZIP.
To znamená, že súbor WAR by mal byť v súbore ZIP, čo podporuje proces nasadenia pomocou aplikácie CodeDeploy.
- Na inštancii systému Linux je tiež potrebné nainštalovať AWS CLI (rozhranie príkazového riadku). Prečítajte si URL inštalovať.
- Podľa nasledujúcich pokynov v inštancii systému Linux stiahnite WAR z vedra S3. Nasledujúce kroky je zvyčajne potrebné vykonať na zostavovacom stroji.
nastaviť AWS_ACCESS_KEY_ID =
nastaviť AWS_SECRET_ACCESS_KEY =
sada AWS_DEFAULT_REGION = ap-juhovýchod-1
cd / opt / niranjan
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy používa appspec.yml súbor, ktorý obsahuje pokyny na nasadenie do inštancií EC2. Tento súbor musí byť v koreňovom adresári priečinka, do ktorého je stiahnutý súbor WAR aplikácie.
Vytvorte súbor appspec.yml a priečinok skriptov, ako je uvedené nižšie:
Udalosti sa počas nasadenia spúšťajú v nasledujúcom poradí.
# 1) ApplicationStop
# 2) Pred inštaláciou
# 3) Inštalácia (volá sa sekcia súborov a súbor WAR bol skopírovaný)
# 4) ApplicationStart
príklad hash tabuľky v C ++
- Použitá hierarchia priečinkov je
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
skriptov
start_application
stop_application
uninstall_war_file
- Obsah skriptov
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
- ZIP obsah a nahrajte ZIP súbor do vedra S3. Uistite sa, že je v segmente povolená VERZIA.
zip –r AWS-HelloWorld-1.0.0.war.zip skripty 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
Súbor ZIP nahraný do segmentu S3 je viditeľný na nasledujúcej obrazovke:
Namiesto postupného spúšťania príkazov môžete vytvoriť spustiteľný skript, pridať doň vyššie uvedené príkazy a spustiť ho zakaždým, keď je v zostavení k dispozícii nový súbor WAR.
Vytvorte aplikáciu CodeDeploy
Aplikácia CodeDeploy je vytvorená s cieľom zabezpečiť, aby sa správna revízia súboru WAR nasadila do vhodného prostredia, ktorým je inštancia EC2.
Spustite službu CodeDeploy a kliknite na ikonu Vytvoriť aplikáciu tlačidlo.
Zadajte názov aplikácie, skupinu nasadenia ( Príklad: QA-Env) a vyberte spustené inštancie EC2.
Na konci formulára vyberte rolu služby. Toto je ďalšia rola, ktorá bola predtým vytvorená v príručke.
Klikni na Vytvoriť aplikáciu tlačidlo.
Vyberte skupinu nasadenia (QA-Env) a vyberte Akcie -> Nasadiť novú revíziu.
Pretože je súbor ZIP v priečinku S3, zadajte umiestnenie revízie takto:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Klikni na Nasadiť tlačidlo. Nasadenie je úspešné, ako je uvedené nižšie.
Súbor WAR sa úspešne skopíruje do adresára Tomcat webapps.
Prejdite si adresu URL aplikácie a zaistite, aby sa aplikácia úspešne nasadila.
Jenkinsova integrácia s AWS CodeDeploy
Ako sme videli v predchádzajúcich 2 tutoriáloch, Jenkins sa veľmi dobre integruje s nástrojmi AWS DevOps. Na integráciu Jenkins s CodeDeploy je potrebné nainštalovať doplnok. Kliknite tu na stiahnutie a inštaláciu doplnku CodeDeploy.
Najskôr zadajte prístupový a tajný kľúč pre používateľa IAM v Jenkins -> Konfigurácia .
Záver
Doteraz sme videli, ako je možné CodeDeploy použiť na automatizáciu nasadenia súboru WAR aplikácie J2EE uloženého v segmente S3 na inštanciu EC2, na ktorej je spustený aplikačný server Tomcat.
Séria týchto troch nástrojov, tj. CodeCommit, CodeBuild a CodeDeploy, pomáhajú pri aspektoch DevOps na nepretržitú integráciu a nepretržité doručovanie. Spolu s týmito 3 nástrojmi je AWS CodePipeline ďalším nástrojom, ktorý pomáha pri vizualizácii doručovania aplikácií do konca.
Zostaňte naladení na náš nadchádzajúci tutoriál a dozviete sa viac o nasadení webových aplikácií .NET do AWS pomocou Elastic Beanstalk.
Výukový program PREV | NEXT Tutorial
Odporúčané čítanie
- Najlepšie nástroje AWS DevOps pre vytváranie a nasadenie cloudu
- Nepretržité nasadenie v DevOps
- Výukový program AWS CodeCommit pre implementáciu DevOps v cloude
- Nepretržité doručovanie v DevOps
- Nepretržité testovanie v DevOps
- Dôležitosť malých prírastkov dodávok v DevOps
- Výukový program AWS CodeBuild: Extrahovanie kódu z Maven Build
- DevOps Automation: Ako sa automatizácia uplatňuje v praxi DevOps