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

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

HashiCorp ka treguar projektin e ri Waypoint në HashiCorp Digital. Ai përdor një skedar të bazuar në HCL për të përshkruar ndërtimin, dorëzimin dhe lansimin e aplikacioneve për platforma të ndryshme në cloud, duke filluar nga Kubernetes dhe deri në AWS dhe Google Cloud Run. Mund ta imagjinoni Waypoint si një bashkim të Terraform dhe Vagrant për të përshkruar procesin e ndërtimit, dorëzimit dhe lansimit të aplikacioneve tuaja.

Pa ndryshuar veten, HashiCorp ka lĂ«shuar Waypoint me burim tĂ« hapur, si dhe shumĂ« shembuj. Nivelin e orkestratorit e zgjidhni vetĂ«, Waypoint vjen si njĂ« skedar ekzekutiv qĂ« mund ta запусĐșoni direkt nĂ« laptopin tuaj ose nga mjeti tuaj tĂ« preferuar tĂ« orkestrimit CI/CD. QĂ«llimi pĂ«r ndĂ«rtimin e aplikacioneve gjithashtu zgjidhet nga ju, pasi Waypoint mbĂ«shtet Kubernetes, Docker, Google Cloud Run, AWS ECS dhe tĂ« tjerĂ«.

Pas leximit të fantastik dokumentacioni dhe të mahnitshme shembuj aplikacioneve të ofruara nga HashiCorp, vendosëm të shohim më nga 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ë funksionon në AWS ECS, nga repertori i shembujve.

Pas klonimit të repertorit, do të shohim strukturën e aplikacionit që tregon një faqe:

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

Si e keni vënë re, në këtë projekt nuk ka Dockerfile. Ato nuk janë shtuar në shembuj, sepse në të vërtetë nuk na nevojiten, pasi Waypoint merret me to për ne. 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Ă« pĂ«rcaktuar gjuhĂ«n e programimit tĂ« projektit dhe pĂ«r tĂ« krijuar njĂ« imazh pĂ«r Docker pa pĂ«rdorur Dockerfile. NĂ« tĂ« vĂ«rtetĂ«, kjo Ă«shtĂ« e njĂ«jta teknologji qĂ« pĂ«rdoret nga GitLab nĂ« pjesĂ«n Auto DevOps nĂ« hapin Auto Build. ËshtĂ« kĂ«naqĂ«si tĂ« shohĂ«sh se CNB nga CNCF po bĂ«het gjithnjĂ« e mĂ« e njohur midis pĂ«rdoruesve nga industria.

Sa herë që imazhi është ndërtuar, Waypoint automatikisht do ta ngarkojë atë në regjistrin ECR të AWS për ta bërë atë të gatshëm për shpërndarje. Pasi të përfundojë ndërtimi, hapi i shpërndarjes përdor shtesën AWS ECS për të vendosur aplikacionin tonë në llogarinë tonë AWS.

Nga kompjuterin tim — gjithçka Ă«shtĂ« e thjeshtĂ«. UnĂ« vendos Waypoint, i cili Ă«shtĂ« tashmĂ« i autentikuar nĂ« llogarinĂ« time nĂ« AWS, dhe ai "funksionon thjesht". Por çfarĂ« ndodh nĂ«se dua tĂ« dal pĂ«rtej kompjuterit tim? Ose ndoshta dua ta automatizoj kĂ«tĂ« dislokim si pjesĂ« tĂ« procesit tim tĂ« pĂ«rgjithshĂ«m CI/CD, ku ekzekutohen testet e mia tĂ« integrimit aktual, testet e sigurisĂ« dhe tĂ« tjera? Ky Ă«shtĂ« momenti kur hyn nĂ« lojĂ« GitLab CI/CD!

Shën. Nëse po planifikoni vetëm të aplikoni 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ë Slyermës. "CI/CD me shembujt e GitLab CI". Tani është në dispozicion për një çmim parashitore.

Waypoint në GitLab CI/CD

Për orkestrimin e gjithçkaje 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 ta ekzekutuar brenda tij. Waypoint funksionon nĂ« çdo distribucion Linux, i nevojitet vetĂ«m Docker, kĂ«shtu qĂ« mund tĂ« fillojmĂ« nga njĂ« imazh tĂ« pĂ«rgjithshĂ«m Docker.
  • Pastaj duhet tĂ« instalojmĂ« Waypoint nĂ« kĂ«tĂ« imazh. NĂ« tĂ« ardhmen, mund tĂ« ndĂ«rtojmĂ« imazhin meta build dhe ta kontenerizojmĂ« kĂ«tĂ« proces pĂ«r veten tonĂ«.
  • SĂ« fundmi do tĂ« ekzekutojmĂ« komandat Waypoint

Më poshtë janë të gjitha ato që do t'i nevojiten konvejirit tonë për të nisur skriptet e nevojshme për ekzekutimin e shpërndarjeve, por për shpërndarjen në AWS na nevojitet edhe një gjë tjetër: ne duhet të autorizohemi në llogarinë tonë AWS. Në përshkrimin e Waypoint ka plane për autentifikim dhe autorizim. HashiCorp gjithashtu publikoi këtë javë një projekt impresionues Boundary. Por për momentin ne mund ta trajtojmë vetë autentifikimin dhe autorizimin.

PĂ«r autentifikimin e GitLab CICD nĂ« AWS ka disa mundĂ«si. MundĂ«sia e parĂ« Ă«shtĂ« pĂ«rdorimi i integruar HashiCorp Vault. Ai do tĂ« jetĂ« i pĂ«rshtatshĂ«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 pĂ«rmes AWS IAM — sigurohuni qĂ« detyrat e shpĂ«rndarjes nisĂ«n pĂ«rmes GitLab Runner, tĂ« autorizuara pĂ«r tĂ« nisur shpĂ«rndarjen pĂ«rmes IAM. Por nĂ«se thjesht dĂ«shironi tĂ« njiheni me Waypoint dhe doni ta bĂ«ni sa mĂ« shpejt, ka njĂ« mundĂ«si tĂ« fundit — tĂ« shtoni çelĂ«sat tuaj AWS API dhe Secret nĂ« variablat e ambientit GitLab CI/CD AWS_ACCESS_KEY_ID dhe AWS_SECRET_ACCESS_KEY.

T'i bashkojmë të gjitha së bashku

Sapo e zgjidhëm autentifikimin, mund të fillojmë! Versioni ynë përfundimtar .gitlab-ci.yml duke dukur kështu:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Definoni variablat e ambientit, 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

E shihni që fillojmë me imazhin docker:latest dhe vendosim disa variabla ambienti që kërkohen për Waypoint. Në seksionin script shkarkojmë versionin më të fundit të skedarit ekzekutues Waypoint dhe e vendosim në /usr/local/bin. Meqenëse runner-i ynë është tashmë i autorizuar në AWS, ne thjesht fillojmë waypoint init, ndërto, deploy dhe release.

Dërgimi i detyrës së ndërtimit do t'na tregojë endpoint-in ku e kemi shpalosur aplikacionin:

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

Waypoint është një nga zgjidhjet e shumta HashiCorp, që funksionojnë shkëlqyer me GitLab. Për shembull, përveç dërgimit të aplikacionit, ne mund të orkestrojmë infrastrukturën në nivelin e poshtëm me Terraform në GitLab. Për standardizimin e sigurisë SDLC, ne gjithashtu mund ta integrojmë GitLab me Vault për menaxhimin e sekreteve dhe tokeneve 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, dhe përdorimit industrial.

Zgjidhjet e krijuara nga HashiCorp dhe GitLab i ndihmojnë kompanitë të gjejnë mënyrën më të mirë për të zhvilluar aplikacione, duke siguruar një menaxhim të koherencës së flukseve të furnizimit dhe infrastrukturës. Waypoint bëri një hap tjetër në drejtimin e duhur, dhe ne presim me padurim vazhdimin e projektit. Mund të mësoni më shumë rreth Waypoint këtu, gjithashtu ia vlen të shqyrtohet dokumentacioni dhe plani i zhvillimit të projektit. Ne kemi shtuar njohuritë që kemi marrë në dokumentacionin GitLab CICD. Nëse dëshironi ta provoni gjithçka në punë vetë, mund të merrni një shembull të plotë të funksionimit në këtë depo.

Të kuptoni parimet e CI/CD, të zotëroni të gjitha hollësitë e punës me Gitlab CI dhe të filloni të aplikoni praktikat më të mira mund të bëhet duke kaluar nëpër kursin me video "CI/CD me shembujt e GitLab CI". Bashkohuni!

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster