Si të përdorni HashiCorp Waypoint për integrim me GitLab CI/CD

Si të përdorni HashiCorp Waypoint për integrim me GitLab CI/CD

HashiCorp tregoi një projekt të ri Waypoint në HashiCorp Digital. Ai përdor një skedar të bazuar në HCL për të përshkruar ndërtimin, dorëzimin dhe lëshimin e aplikacioneve për platforma të ndryshme cloud, duke filluar nga Kubernetes dhe duke përfunduar me AWS dhe Google Cloud Run. Mund të imagjinoni se Waypoint është si kombinimi i Terraform dhe Vagrant për të përshkruar procesin e ndërtimit, dorëzimit dhe lëshimit të aplikacioneve tuaja.

Pa ndryshuar vetveten, HashiCorp lëshoi Waypoint me kod burimi të hapur, gjithashtu vjen me shumë shembuj. Niveli i orkestruesit mbetet për ju, Waypoint vjen si një skedar ekzekutues që mund ta lançoni direkt në laptopin tuaj ose nga mjeti i orkestrimit CI/CD të zgjedhur. Qëllimi për shpërndarjen e aplikacioneve gjithashtu zgjidhet nga ju, pasi Waypoint mbështet Kubernetes, Docker, Google Cloud Run, AWS ECS dhe të tjerë.

Pas leximit të jashtëzakonshme dokumentacion dhe mahnitëse shembuj aplikacioneve të ofruara nga HashiCorp, vendosëm të shohim më afër orkestrimin e Waypoint me GitLab CI/CD. Për ta bërë këtë, do të marrim një aplikacion të thjeshtë Node.js, që drejtohet në AWS ECS, nga repozitori i shembujve.

Pas klonimit të repozitorit do të shohim strukturën e aplikacionit që shfaq një faqe:

Si të përdorni HashiCorp Waypoint për integrim me GitLab CI/CD

Siç mund të keni vënë re, në këtë projekt nuk ka Dockerfile. Ato nuk janë shtuar në shembuj, pasi në parim nuk na duhen, sepse Waypoint do të kujdeset për to. Le të shqyrtojmë më në detaje skedarin waypoint.hcl, për të kuptuar se çfarë do të bëjë:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

Në fazën e ndërtimit, Waypoint përdor Cloud Native Buildpacks (CNB), për të identifikuar gjuhën programuese të projektit dhe për të krijuar një imazh për Docker pa përdorur Dockerfile. Në parim, kjo është e njëjta teknologji që përdor GitLab në pjesën Auto DevOps në hapin Auto Build. Gëzuar të shohim se CNB nga CNCF po fiton më shumë popullaritet me përdoruesit nga industria.

Sa herë që imazhi është ndërtuar, Waypoint automatikisht do ta ngarkojë në regjistrin tonë AWS ECR, që të jetë gati për dorëzim. Pas përfundimit të ndërtimit, hapi i dorëzimit përdor shtesën AWS ECS për të shpërndarë aplikacionin tonë në llogarinë tonë AWS.

Nga laptopi im - gjithçka është e thjeshtë. Instaloj Waypoint, i cili është autentikuar në llogarinë time AWS, dhe ai "funksionon thjesht". Por, çfarë do të ndodhë nëse dëshiroj të shkoj përtej laptopit tim? Apo papritmas dua të automatizoj këtë shpërndarje si pjesë e pipeline-it tim të përgjithshëm CI/CD, ku ekzekutohen provat e mia të integrimit, provat e sigurisë dhe të tjera? Kjo është pjesa e tregimit ku hyn GitLab CI/CD!

Shënim: Nëse sapo po planifikoni të implementoni CI/CD ose dëshironi të filloni të aplikoni praktikat më të mira për ndërtimin e pipeline-ve, shikoni kursin e ri të Slyrmës. "CI/CD me shembujin e GitLab CI". Tani është i disponueshëm me një çmim parashtrimi.

Waypoint në GitLab CI/CD

Për të orkestruar gjithçka në GitLab CI/CD, le të shohim se çfarë na nevojitet në skedarin tonë .gitlab-ci.yml:

  • SĂ« pari, na nevojitet njĂ« imazh bazĂ« pĂ«r tĂ« ekzekutuar brenda tij. Waypoint funksionon nĂ« çdo distribuim Linux, ka nevojĂ« vetĂ«m pĂ«r Docker, kĂ«shtu qĂ« mund tĂ« ekzekutojmĂ« nga njĂ« imazh tĂ« pĂ«rgjithshĂ«m Docker.
  • MĂ« pas, duhet tĂ« instalojmĂ« Waypoint nĂ« kĂ«tĂ« imazh. NĂ« tĂ« ardhmen, mund tĂ« ndĂ«rtojmĂ« imagjinĂ« meta build dhe ta kontenizojmĂ« kĂ«tĂ« proces pĂ«r vete.
  • SĂ« fundi, do tĂ« ekzekutojmĂ« komandat Waypoint

Më sipër është përshkruar gjithçka që i nevojitet pipeline-it tonë për të ekzekutuar skenaret e nevojshme për shpërndarjen, por për shpërndarjen në AWS, na duhet një gjë tjetër: duhet të autorizohemi në llogarinë tonë AWS. Në përshkrimin e Waypoint-it ka plane për autentifikimin dhe autorizimin. HashiCorp gjithashtu lançoi një projekt impresionues këtë javë Boundary. Por për momentin, mund ta trajtojmë thjesht vetë autentifikimin dhe autorizimin.

Për autentifikimin e GitLab CICD në AWS, ka disa mundësi. Opcioni i parë - përdorimi i integruar HashiCorp Vault. Do të ishte i dobishëm nëse ekipi juaj tashmë përdor Vault për menaxhimin e kredencialeve. Një tjetër mënyrë, e cila është e përshtatshme nëse ekipi juaj menaxhon autorizimin me AWS IAM - sigurohuni që detyrat e shpërndarjes ekzekutohen përmes GitLab Runner, të autorizuar për të ekzekutuar shpërndarjen përmes IAM. Por nëse thjesht dëshironi të njihni Waypoint dhe dëshironi ta bëni këtë më shpejt, ka një mundësi të fundit - shtoni çelësat tuaj AWS API dhe Secret në variablat mjedisi të GitLab CI/CD AWS_ACCESS_KEY_ID dhe AWS_SECRET_ACCESS_KEY.

Mblidhemi të gjithë së bashku

Pasi të kemi sqaruar autentifikimin, mund të fillojmë! Në fundin tonë .gitlab-ci.yml duhet të duket kështu:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Definoni variablat e mjedisit, p.sh. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

Ju lutem vini re në fillim me imazhin docker:latest dhe vendosni disa variabla ambientalë të nevojshëm për Waypoint. Në seksionin script ne shkarkojmë versionin më të fundit të skedarit ekzekutues Waypoint dhe e vendosim atë në /usr/local/bin. Të qenit që runner-i ynë është tashmë i autorizuar në AWS, ne thjesht ekzekutojmë waypoint init, build, deploy dhe release.

Dërgesa e detyrës së ndërtimit do të na tregojë endpoint-in ku e kemi vendosur aplikacionin:

Si të përdorni HashiCorp Waypoint për integrim me GitLab CI/CD

Waypoint është një nga zgjidhjet e shumta të HashiCorp, duke funksionuar shkëlqyer me GitLab. Për shembull, përveç dërgimit të aplikacioneve, ne mund të orkestrojmë infrastrukturën poshtë me anë të Terraform në GitLab. Për të standardizuar sigurinë në SDLC, ne mund të integrojmë gjithashtu GitLab me Vault për menaxhimin e sekreteve dhe tokenëve në linjat CI/CD, duke ofruar një zgjidhje gjithëpërfshirëse për zhvilluesit dhe administratorët që mbështeten në menaxhimin e sekreteve gjatë zhvillimit, testimit, si dhe përdorimit industrial.

Zgjidhjet bashkëpunuese të zhvilluara nga HashiCorp dhe GitLab ndihmojnë kompanitë të gjejnë mënyrën më të mirë për të zhvilluar aplikacione, duke ofruar menaxhim të qëndrueshëm të rrjedhave të dërgimit dhe infrastrukturës. Waypoint ka bërë një tjetër hap në drejtimin e duhur, dhe ne presim me padurim zhvillimin e mëtejshëm të projektit. Mund të mësoni më shumë për Waypoint këtu, gjithashtu ia vlen të hidhni një sy dokumentacion dhe plani i zhvillimit projektit. Ne kemi shtuar njohuritë tona në dokumentacionin GitLab CICD. Nëse dëshironi të provoni gjithçka në punë për vetë, mund të merrni një shembull funksional të plotë në këtu në këtë depo.

Të kuptosh parimet e CI/CD, të zotësosh të gjitha nuancat e punës me Gitlab CI dhe të fillosh të zbatosh praktikat më të mira mund të arrihet duke kaluar nëpër kursin video "CI/CD me shembujin e GitLab CI". Bashkohuni!

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster