working aws codedeploy devops tool
Výukový program pro automatické nasazení pomocí AWS CodeDeploy:
v Část 2 nástrojů AWS DevOps , viděli jsme, jak byla služba CodeBuild použita k sestavení projektu J2EE pomocí Mavenu.
V tomto kurzu uvidíme, jak lze soubor artefaktu WAR, který je uložen v kbelíku S3, použít k nasazení na aplikační server Tomcat pomocí služby CodeDeploy.
Podívejte se => Ideální průvodce tréninkem DevOps
AWS CodeDeploy je služba nasazení, která automatizuje nasazení aplikace do instancí Amazon EC2 Linux nebo Windows.
Tento kurz také vysvětlí, jak lze Jenkins integrovat s CodeDeploy.
Předpoklad:
- Účet u AWS přednostně zdarma.
- Dobré a rychlé připojení k internetu.
- Použitá oblast AWS - Asie a Tichomoří (Singapur).
- Instance Amazon Linux nebo RHEL EC2.
- Tomcat nainstalován na instanci EC2.
Poznámka: Za účelem nasazení obsahu není pro službu CodeDeploy podporováno úložiště AWS CodeCommit. Podporovány jsou pouze S3 a GitHub.
Co se naučíte:
- Nastavit CodeDeploy
- Spusťte instanci Amazon Linux EC2
- Integrace AWS CodeDeploy se S3
- Vytvořte aplikaci CodeDeploy
- Jenkinsova integrace s AWS CodeDeploy
- Závěr
- Doporučené čtení
Nastavit CodeDeploy
AWS CodeDeploy bude muset pracovat zejména se dvěma entitami pro přístup k instanci EC2 a kbelíku S3, kde jsou artefakty (soubor WAR) uloženy pro nasazení. Aby bylo možné poskytnout službě CodeDeploy přístup k těmto IAM, bude nutné nastavit role. Role IAM nejsou definovány pro uživatele IAM, ale mají přístup pouze k entitám.
# 1) Vytvořte první role pro službu CodeDeploy pro přístup k instanci EC2.
Spusťte IAM a klikněte na Role-> Vytvořit roli.
Pod Služba AWS klikněte na EC2 -> Vyberte případ použití -> EC2 a klikněte na Další-> Oprávnění.
Vybrat AWSCodeDeployRole v části Název zásady a klikněte na Další-> Zkontrolovat.
Zadejte název role a klikněte na Vytvořit roli.
Nakonec upravte vztah důvěryhodnosti pro tuto roli, abyste zajistili, že služba CodeDeploy bude přístupná celkově nebo pro konkrétní oblasti / koncové body.
Klikněte na roli a aktualizujte vztah důvěryhodnosti, jak je uvedeno níže.
V zásadách změňte EC2 na Codedeploy a klikněte na Aktualizujte zásady důvěryhodnosti.
dva) Vytvořte druhá role pro instanci EC2 pomocí služby CodeDeploy pro přístup k bloku S3.
Opakujte výše uvedené kroky pro tuto roli a zadejte níže:
- Jít do IAM -> Role -> Vytvořit roli.
- V části Služba AWS vyberte EC2.
- Pod tím Vyberte znovu svůj případ použití a klikněte na EC2 a klikněte na tlačítko Další-> Oprávnění.
- Na obrazovce zásad povolení připojit vyberte AmazonS3ReadOnlyAccess a klikněte na tlačítko Další-> Zkontrolovat.
- Pojmenujte roli HW-Codedeploy-EC2-S3 a klikněte na Vytvořit roli.
Obě role by nyní měly být k dispozici.
Spusťte instanci Amazon Linux EC2
V této části nyní zajišťujeme instanci EC2.
Při zajišťování instance nezapomeňte vybrat roli HW-Codedeploy-EC2-S3 v průběhu Nakonfigurujte podrobnosti instance krok. Nezapomeňte také vytvořit otevřený port 8080.
Spolu s tím budeme muset také nainstalovat Agent CodeDeploy a Tomcat jako aplikační server, který bude použit pro nasazení naší aplikace.
# 1) Nainstalujte a nakonfigurujte agenta CodeDeploy na instanci Amazon Linux
Agent CodeDeploy pomáhá při nasazení a musí být nainstalován v každé instanci (prostředí), kde bude nasazení provedeno.
Přihlaste se k instanci systému Linux a stáhněte si agenta podle používané oblasti. V našem případě je identifikátorem oblast Singapuru ap-jihovýchod-1.
Příkaz ke stažení agenta bude ve formátu:
wget https: // aws-codedeploy-. s3.amazonaws.com/latest/install
# 2) Nainstalujte Tomcat na instanci EC2
- Chcete-li nainstalovat a spustit Tomcat, proveďte následující kroky v uvedeném pořadí.
yum install tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Povolte uživatele Tomcat pro správce aplikací. Proveďte změny, jak je znázorněno v souboru /etc/tomcat7/tomcat-users.xml
- Nakonec spusťte službu Tomcat.
služba tomcat7 start
- Zahájení Správce webových aplikací Tomcat a zkontrolujte, zda funguje, pomocí adresy URL http: //: 8080 / manager
Integrace AWS CodeDeploy se S3
Jak je uvedeno v části 2, že CodeDeploy podporuje pouze S3 a GitHub jako úložiště kódu, které se používá k nasazení nejnovějších verzí aplikace. Jelikož je náš soubor WAR uložen v kbelíku S3, musíme zajistit, aby udržovaný formát byl soubor ZIP.
To znamená, že soubor WAR by měl být v souboru ZIP, který je podporován procesem nasazení pomocí CodeDeploy.
- AWS CLI (rozhraní příkazového řádku) je také třeba nainstalovat na instanci Linux. Přečtěte si prosím URL instalovat.
- Spuštěním následujících kroků v instanci systému Linux stáhněte WAR z kbelíku S3. Následující kroky je obvykle nutné provést na sestavovacím stroji.
nastavit AWS_ACCESS_KEY_ID =
nastavit AWS_SECRET_ACCESS_KEY =
set AWS_DEFAULT_REGION = ap-jihovýchod-1
cd / opt / niranjan
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy používá appspec.yml soubor, který obsahuje pokyny k nasazení do instancí EC2. Tento soubor musí být v kořenovém adresáři složky, kde je stažen soubor WAR aplikace.
Vytvořte soubor appspec.yml a složku skriptů, jak je znázorněno níže:
Události se během nasazení spouštějí v následujícím pořadí.
# 1) ApplicationStop
# 2) Před instalací
# 3) Instalovat (volá se část souborů a soubor WAR byl zkopírován)
# 4) ApplicationStart
- Použitá hierarchie složek je
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
skripty
start_application
stop_application
uninstall_war_file
- Obsah skriptů
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
- Obsah ZIP a nahrajte soubor ZIP do kbelíku S3. Ujistěte se, že je v segmentu povoleno VERSIONING.
skripty zip –r AWS-HelloWorld-1.0.0.war.zip 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
Soubor ZIP nahraný do bloku S3 je vidět na následující obrazovce:
Místo toho, abyste spouštěli příkazy jeden po druhém, můžete vytvořit spustitelný skript a přidat do něj výše uvedené příkazy a spustit jej pokaždé, když je v sestavení k dispozici nový soubor WAR.
Vytvořte aplikaci CodeDeploy
Aplikace CodeDeploy je vytvořena, aby bylo zajištěno, že je správná revize souboru WAR nasazena do příslušného prostředí, kterým je instance EC2.
Spusťte službu CodeDeploy a klikněte na ikonu Vytvořit aplikaci knoflík.
Zadejte název aplikace, skupinu nasazení ( Příklad: QA-Env) a vyberte spuštěné instance EC2.
Na konci formuláře vyberte roli služby. Toto je další role, která byla vytvořena dříve v kurzu.
Klikněte na Vytvořit aplikaci knoflík.
Vyberte skupinu nasazení (QA-Env) a vyberte Akce -> Nasadit novou revizi.
Protože je soubor ZIP v kbelíku S3, zadejte umístění revize následujícím způsobem:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Klikněte na Nasadit knoflík. Nasazení je úspěšné, jak je znázorněno níže.
Soubor WAR je úspěšně zkopírován do adresáře Tomcat webapps.
kde najít klíč zabezpečení sítě na routeru
Procházejte adresu URL aplikace a zajistěte, aby byla aplikace úspěšně nasazena.
Jenkinsova integrace s AWS CodeDeploy
Jak jsme viděli v předchozích 2 tutoriálech, Jenkins se velmi dobře integruje s nástroji AWS DevOps. Chcete-li integrovat Jenkins s CodeDeploy, je třeba nainstalovat plugin. Klepněte na tady ke stažení a instalaci pluginu CodeDeploy.
Nejprve zadejte přístupový a tajný klíč pro uživatele IAM Jenkins -> Konfigurace .
Závěr
Zatím jsme viděli, jak lze CodeDeploy použít k automatizaci nasazení souboru WAR aplikace J2EE uloženého v kbelíku S3 na instanci EC2, na které běží aplikační server Tomcat.
Řada těchto tří nástrojů, tj. CodeCommit, CodeBuild a CodeDeploy, pomáhají v aspektech nepřetržité integrace a nepřetržitého doručování DevOps. Spolu s těmito 3 nástroji je AWS CodePipeline dalším nástrojem, který pomáhá při vizualizaci dodávky aplikace na konci.
Zůstaňte naladěni na náš nadcházející výukový program a dozvíte se více o nasazení webových aplikací .NET do AWS pomocí Elastic Beanstalk.
Výukový program PREV | DALŠÍ výuka
Doporučené čtení
- Nejlepší nástroje AWS DevOps pro vytváření a nasazení cloudu
- Kontinuální nasazení v DevOps
- Výukový program AWS CodeCommit pro implementaci DevOps v cloudu
- Kontinuální doručování v DevOps
- Kontinuální testování v DevOps
- Význam malých přírůstků dodávek v DevOps
- Výukový program AWS CodeBuild: Extrahování kódu z Maven Build
- DevOps Automation: How is Automation Applied in DevOps Practice