Automatizarea implementării codului cu AWS CodeCommit și CodeDeploy

Publicat: 2022-03-25

Automate Code Deployment with AWS CodeCommit & CodeDeploy

În calitate de dezvoltator web, munca dvs. poate include mai multe sarcini complexe, cum ar fi automatizarea implementării codului pe serverele de producție sau dacă lucrați într-un grup și vă confruntați cu probleme în timp ce încărcați codul pe un site web live, atunci această postare de blog este o soluție pentru a depăși toate aceste probleme. probleme.

Când utilizați FTP, trebuie să fi suprascris codul co-dezvoltatorului, o problemă destul de comună și care se întâmplă cu majoritatea dintre noi. Acest ghid vă va arăta automatizarea implementării codului cu serviciile AWS CodeCommit, CodeDeploy și Pipeline.

Prezentare generală tehnologică:

  1. AWS CodeCommit : Vom folosi CodeCommit pentru a ne menține depozitele (Conținut web/Fișiere de cod) care vor păstra toate fișierele de proiect și jurnalele de comitere.
  2. Server EC2 : Vom folosi EC2 ca server de producție, acesta va conține site-ul live și codul pentru vizitatorii site-ului dvs.
  3. AWS CodeDeploy : va reține aplicația pentru a vă publica codul pe serverul EC2. De asemenea, vom crea un grup de implementare care va deține numele/eticheta instanței EC2 vizate în care dorim să publicăm codul nostru.
  4. Pipeline : Vom selecta CodeCommit ca sursă și CodeDeploy ca etapă de implementare. Prin urmare, ori de câte ori sunt detectate modificări de cod în CodeCommit, conducta va rula și va împinge acele modificări de cod în CodeDeploy (instanță EC2).

Automatizarea implementării codului: explicată în detaliu :

Căutați EXPERȚI AWS? VERIFICAȚI AICI

Crearea unui utilizator IAM și Git pentru automatizarea implementării codului

Mai întâi va trebui să creăm un utilizator IAM și un utilizator Git care să facă modificările codului și să le publice pe serverul de implementare.

  1. Creați un utilizator IAM
    1. Permiteți accesul la : AWSCodeCommitFullAccess, AWSCodeDeployFullAccess, AWSCodeCommitPowerUser. Veți găsi această opțiune în fila „Atașați direct politicile existente”.
  2. Acum, conectați-vă cu acest utilizator IAM.
  3. Faceți clic pe Acreditări de securitate din colțul din dreapta sus.
  4. Faceți clic pe fila Acreditări AWS CodeCommit .
  5. În secțiunea „Acreditări HTTPS Git pentru AWS CodeCommit”, faceți clic pe butonul Generare acreditări .
  6. Acum, copiați numele de utilizator și parola într-un loc sigur. Acesta va fi numele de utilizator și parola principal pentru Git pentru a introduce/trage modificări de cod.

Crearea unui depozit în CodeCommit

Acum, haideți să creăm un depozit care va conține codul dvs. exact.

  1. Accesați Tabloul de bord CodeCommit de la utilizatorul IAM.
  2. În colțul din dreapta sus, selectați regiunea în care doriți să vă creați depozitul.
  3. Faceți clic pe Creare depozit, dați-i un nume, descriere și faceți clic pe create.
  4. În secțiunea „ Clonați depozitul ”, veți vedea o adresă URL a depozitului dvs. Păstrați-l într-un loc sigur. Va arăta astfel: https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest

Creating a Repository in CodeCommit

Căutați EXPERȚI AWS? VERIFICAȚI AICI

Încărcarea fișierului de proiect pentru prima dată

  1. Deschideți promptul de comandă al sistemului local în care se află codul original.
  2. În linia de comandă, navigați la calea în care se află codul dvs.
  3. Acum, rulați următoarele comenzi pentru a vă trimite codul în depozitul AWS pentru prima dată:

git init
git config –local init.defaultBranch principal
git config –global init.defaultBranch principal
git add . ## aceasta va confirma toate fișierele proiectului
git commit –m „Comitare inițială”
git push https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest –all

Uploading your project file for the first time

  • Creați o instanță EC2 și instalați agentul CodeDeploy
  1. Creați un rol de instanță
    1. Deschideți Consola AWS IAM.
    2. Accesați fila Roluri >> Creați rol.
    3. Sub Selectați tipul de entitate de încredere, selectați AWS service . Sub „Alegeți un caz de utilizare”, selectați EC2 . Sub „Selectați cazul dvs. de utilizare”, alegeți EC2. Alegeți Următorul: Permisiuni .
    4. Căutați și selectați politica numită AmazonEC2RoleforAWSCodeDeploy , apoi alegeți Următorul: Etichete .
    5. Alegeți Următorul: Examinare. Introduceți un nume pentru rol (de exemplu, EC2InstanceRole ) și faceți clic pe Creare .
  2. Creați o instanță EC2
    1. Accesați consola EC2. Faceți clic pe Lansare instanță.
    2. Alegeți o imagine de mașină Amazon (AMI), localizați Amazon Linux 2 AMI (HVM), tipul volumului SSD și apoi alegeți Selectați. (Acest AMI este etichetat „Eligibil pentru nivelul gratuit” și poate fi găsit în partea de sus a listei.)
    3. Alegeți o pagină Tip de instanță, alegeți tipul t2.micro eligibil pentru nivelul gratuit ca configurație hardware pentru instanța dvs., apoi alegeți Următorul: Configurați detaliile instanței .
    4. Pagina Configurați detaliile instanței, procedați în felul următor:
      1. În Numărul de cazuri, introduceți 1 .
      2. În Atribuire automată IP publică, alegeți Activare .
      3. În rolul IAM, alegeți rolul IAM pe care l-ați creat în procedura anterioară (de exemplu, EC2InstanceRole ).
      4. Extindeți Detalii avansate și, în câmpul Date utilizator, introduceți următoarele:

#!/bin/bash
yum -y actualizare
yum install -y ruby
yum install -y aws-cli
cd /home/ec2-user
wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install
chmod +x ./install
./install auto

  1. Lăsați restul elementelor din pagina Pasul 3: Configurați detaliile instanței neschimbate. Alegeți Următorul: Adăugați spațiu de stocare .
  2. Lăsați pagina Pasul 4: Adăugați spațiu de stocare neschimbată, apoi alegeți Următorul: Adăugați etichete.
  3. Alegeți Adăugare etichetă . În Key, introduceți Name , iar în Value, introduceți MyCodePipelineDemo . Alegeți Următorul: Configurați grupul de securitate. Mai târziu, creați o aplicație CodeDeploy care implementează aplicația exemplu în această instanță. CodeDeploy selectează instanțe de implementat pe baza etichetelor care sunt atașate instanțelor.
  4. Pagina Configurați grupul de securitate, faceți următoarele:
      • Lângă Atribuire un grup de securitate , selectați Creați un nou grup de securitate .
      • În rândul pentru SSH , sub Sursă , alegeți IP-ul meu .
      • Alegeți Adăugare regulă , alegeți HTTP , apoi sub Sursă , alegeți IP-ul meu
  5. Alegeți Examinare și lansare.
  6. Pe pagina Examinare lansare instanță , alegeți Lansare. Când vi se solicită o pereche de chei, selectați „ Continuați fără pereche de chei” .
  7. Alegeți Vizualizare instanțe pentru a închide pagina de confirmare și a reveni la consolă.
  8. Puteți vedea starea lansării pe pagina Instanțe . Când lansați o instanță, starea sa inițială este „în așteptare”. După ce pornește instanța, starea acesteia se schimbă în „în rulare” și primește un nume DNS public. (Dacă coloana DNS public nu este afișată, alegeți pictograma Afișare/Ascunde , apoi selectați DNS public .)
  9. Poate dura câteva minute pentru ca instanța să fie gata pentru a vă conecta la ea. Vizualizați informațiile din coloana Verificări de stare pentru a vedea dacă instanța dvs. a trecut verificările de stare.

Create an EC2 Instance

Căutați EXPERȚI AWS? VERIFICAȚI AICI

Creați o aplicație în CodeDeploy

  • Creați un rol de serviciu CodeDeploy
    • Deschideți consola IAM la https://console.aws.amazon.com/iam/
    • Din tabloul de bord al consolei, alegeți Roluri .
    • Alegeți să Creați un rol .
    • Sub Selectați tipul de entitate de încredere, selectați AWS service . Sub Alegeți un caz de utilizare , selectați CodeDeploy . Sub Selectați cazul dvs. de utilizare, alegeți CodeDeploy. Alegeți Următorul: Permisiuni. Politica gestionată AWSCodeDeployRole este deja atașată rolului.
    • Alegeți Următorul: Etichete și Următorul: Examinare.
    • Introduceți un nume pentru rol (de exemplu, CodeDeployRole), apoi alegeți Creare rol.
  • Creați o aplicație în CodeDeploy
    • Deschideți consola CodeDeploy la https://console.aws.amazon.com/codedeploy
    • Dacă pagina Aplicații nu apare, în meniu, alegeți Aplicații .
    • Alegeți Creare aplicație .
    • În numele aplicației, introduceți MyDemoApplication .
    • În Compute Platform, alegeți EC2/On-premises .
    • Alegeți să Creați o aplicație.

    Create an application in CodeDeploy

  • Creați un grup de implementare în CodeDeploy
    • Pe pagina care afișează aplicația dvs., alegeți Creare grup de implementare .
    • În numele grupului de implementare, introduceți MyDemoDeploymentGroup .
    • Rol în serviciu, alegeți rolul de serviciu pe care l-ați creat mai devreme (de exemplu, CodeDeployRole ).
    • Sub Tip de implementare, alegeți Pe loc .
    • Sub Environment configuration , alegeți Amazon EC2 Instances. În câmpul Cheie, introduceți Nume . În câmpul Valoare, introduceți numele pe care l-ați folosit pentru a eticheta instanța (de exemplu, MyCodePipelineDemo ).
    • Sub Configurare implementare, alegeți CodeDeployDefault.OneAtaTime .
    • Sub Load Balancer, asigurați-vă că Activați echilibrarea încărcăturii nu este selectată . Nu trebuie să configurați un echilibrator de încărcare sau să alegeți un grup țintă pentru acest exemplu.
    • Extindeți secțiunea Avansat. Sub Alarme, dacă sunt listate alarme, alegeți Ignora configurația alarmei.
    • Alegeți Creați grup de implementare.

Create a deployment group in CodeDeploy

Căutați EXPERȚI AWS? VERIFICAȚI AICI

Creați o conductă

    • Creați o conductă
    • Conectați-vă la AWS Management Console și deschideți consola CodePipeline la http://console.aws.amazon.com/codesuite/codepipeline/home
    • Deschideți consola CodePipeline la https://console.aws.amazon.com/codepipeline/
    • Selectați Creare conductă .
    • În Pasul 1 : Selectați setările conductei, în numele Pipeline, introduceți MyFirstPipeline .
    • În Rolul de serviciu, alegeți Rolul de serviciu nou pentru a permite CodePipeline să creeze un rol de serviciu în IAM.
    • Lăsați setările din Setări avansate la valorile implicite, apoi selectați Următorul.
    • În Pasul 2 : Adăugați etapa sursă, în Furnizor sursă, selectați CodeCommit .
      În Nume depozit, selectați numele depozitului CodeCommit pe care l-ați creat la pasul 1: Creați un depozit CodeCommit. În Nume filială, alegeți principal, apoi selectați Pasul următor.
    • După ce selectați numele și ramura depozitului, un mesaj afișează regula Amazon CloudWatch Events care trebuie creată pentru această conductă.
    • Sub opțiunile „Detecție modificare”, lăsați valorile implicite. Acest lucru permite CodePipeline să utilizeze Amazon CloudWatch Events pentru a detecta modificările din arhiva sursă.
    • Selectați Următorul .
    • În Pasul 3 : Adăugați etapa de construcție, selectați Omite etapa de construcție și apoi acceptați mesajul de avertizare alegând din nou Omiteți . Selectați Următorul .

    Notă : În acest tutorial, implementați cod care necesită un serviciu fără compilare, așa că puteți sări peste acest pas. Cu toate acestea, dacă codul sursă trebuie să fie construit înainte de a fi implementat în instanțe, puteți configura CodeBuild în acest pas.

    • În Pasul 4 : Adăugați etapa de implementare, în Furnizor de implementare, selectați CodeDeploy .
      În numele aplicației, selectați MyDemoApplication . În grupul Implementare, selectați MyDemoDeploymentGroup , apoi selectați Pasul următor .
    • În Pasul 5 : Examinați informațiile și apoi selectați Creare conductă .
    • Conducta începe să ruleze după ce este creată. Acesta descarcă codul din depozitul tău CodeCommit și creează o implementare CodeDeploy în instanța ta EC2. Puteți vizualiza mesajele de progres, „succes” și „eșec” pe măsură ce eșantionul CodePipeline implementează pagina web în instanța Amazon EC2 în implementarea CodeDeploy.

Create a Pipeline

Sunteți gata acum! Accesați Implementări Implementări. Veți vedea jurnalele tuturor implementărilor care au reușit și ale celor care au eșuat.

Pentru a verifica modificările de pe site, deschideți Instanța EC2, căutați DNS-ul dvs. public, care va apărea ca: http://ec2-3-108-40-48.ap-south-1.compute.amazonaws.com .

Odată ce îl răsfoiești, vei vedea paginile tale live.

Create an Option Group

Ați finalizat cu succes Automatizarea implementării codului. Acum puteți introduce noi modificări de cod în depozitul dvs. și le puteți publica automat pe site-ul dvs. Dacă întâmpinați în continuare probleme, nu ezitați să comentați aici.

Căutați EXPERȚI AWS? VERIFICAȚI AICI