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

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

HashiCorp shfaqi një projekt të ri waypoint mbi HashiCorp Digital. Ai përdor një skedar të bazuar në HCL për të përshkruar ndërtimin, dërgimin dhe lëshimin e aplikacioneve për platforma të ndryshme cloud, duke filluar nga Kubernetes te AWS dhe Google Cloud Run. Mendoni për Waypoint si Terraform dhe Vagrant të bashkuar për të përshkruar procesin e ndërtimit, dërgimit dhe lëshimit të aplikacioneve tuaja.

E vërtetë në formë, HashiCorp ka lëshuar Waypoint si burim të hapur dhe vjen me shumë shembuj. Niveli i orkestruesit varet nga ju, Waypoint vjen si një ekzekutues që mund ta ekzekutoni drejtpërdrejt në laptopin tuaj ose nga mjeti juaj i zgjedhur i orkestrimit CI/CD. Objektivi i vendosjes së aplikacionit varet gjithashtu nga ju, pasi Waypoint mbështet Kubernetes, Docker, Google Cloud Run, AWS ECS dhe më shumë.

Pas leximit të mrekullueshëm dokumentacionin dhe më e bukura shembuj aplikacionet e ofruara nga HashiCorp, vendosëm të hedhim një vështrim më të afërt në orkestrimin e Waypoint me GitLab CI/CD. Për ta bërë këtë, ne do të marrim një aplikacion të thjeshtë Node.js që funksionon në AWS ECS nga depoja e mostrës.

Pas klonimit të depove, le të shohim strukturën e aplikacionit që shfaq një faqe:

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

Siç mund ta keni vënë re, nuk ka Dockerfile në këtë projekt. Ato nuk janë shtuar në shembull sepse ne nuk kemi vërtet nevojë për to, sepse Waypoint do të kujdeset për to për ne. Le t'i hedhim një vështrim më të afërt dosjes waypoint.hclpë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"
    }
  }
}

Gjatë fazës së ndërtimit, Waypoint përdor Buildpacks Native Cloud (CNB) për të përcaktuar gjuhën e programimit të projektit dhe për të krijuar një imazh Docker pa përdorur një Dockerfile. Në parim, kjo është e njëjta teknologji që përdoret pjesërisht nga GitLab Zhvilluesit automatikë në hapin e ndërtimit automatik. Është e mrekullueshme të shohësh që CNB-ja e CNCF po fiton gjithnjë e më shumë miratim midis përdoruesve të industrisë.

Pasi të ndërtohet imazhi, Waypoint do ta ngarkojë automatikisht në regjistrin tonë AWS ECR në mënyrë që të jetë gati për t'u dërguar. Në fund të montimit, përdoret hapi i dorëzimit Shtesa AWS ECS për të vendosur aplikacionin tonë në llogarinë tonë AWS.

Nga laptopi im është e lehtë. Vendosa Waypoint e cila tashmë është vërtetuar në llogarinë time AWS dhe "thjesht funksionon". Por çfarë ndodh nëse dua të shkoj përtej laptopit tim? Apo ndoshta dua ta automatizoj këtë vendosje si pjesë e tubacionit tim të përgjithshëm CI/CD ku ekzekutohen testet e mia aktuale të integrimit, testet e sigurisë dhe të tjera? Kjo është pjesa e tregimit ku hyn GitLab CI/CD!

NB Nëse thjesht po planifikoni të zbatoni CI / CD ose dëshironi të filloni të aplikoni praktikat më të mira për ndërtimin e tubacioneve, kushtojini vëmendje kursit të ri Slurm. "CI/CD në shembullin e Gitlab CI". Tani është në dispozicion për çmimin e para-porositjes.

Pika e rrugës në GitLab CI/CD

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

  • Para së gjithash, ju duhet një imazh bazë për të hyrë brenda tij. Waypoint funksionon në çdo shpërndarje Linux, ajo ka nevojë vetëm për Docker, kështu që ne mund të ekzekutojmë me një imazh të përgjithshëm Docker.
  • Tjetra, duhet të instaloni Waypoint në këtë imazh. Në të ardhmen mund të mbledhim imazhi i meta ndërtimit dhe kontejneroni këtë proces për veten tuaj.
  • Më në fund do të ekzekutojmë komandat Waypoint

Më sipër është gjithçka që do t'i nevojitet tubacionit tonë për të ekzekutuar skriptet e nevojshme për të kryer vendosjen, por për t'u vendosur në AWS, na duhet edhe një gjë: duhet të identifikohemi në llogarinë tonë AWS. Në përshkrimin e pikës së rrugës kanë plane në lidhje me vërtetimin dhe autorizimin. HashiCorp gjithashtu publikoi një projekt mbresëlënës këtë javë Kufi. Por tani për tani, ne thjesht mund të marrim dhe trajtojmë vetë vërtetimin dhe autorizimin.

Ekzistojnë disa opsione për vërtetimin e GitLab CICD në AWS. Opsioni i parë është përdorimi i integruar HashiCorp Vault. Është mirë nëse ekipi juaj tashmë po përdor Vault për menaxhimin e kredencialeve. Një metodë tjetër që funksionon nëse ekipi juaj menaxhon autorizimin duke përdorur AWS IAM është të kontrolloni nëse detyrat e dorëzimit janë aktivizuar nëpërmjet GitLab RunnerA që është i autorizuar të fillojë vendosjen përmes IAM. Por nëse thjesht dëshironi të njiheni me Waypoint dhe dëshironi ta bëni atë shpejt, opsioni i fundit është të shtoni API-në tuaj AWS dhe çelësat Sekret në Variablat e mjedisit GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Duke i bashkuar të gjitha

Pasi të kemi kuptuar vërtetimin, mund të fillojmë! Finalja jonë .gitlab-ci.yml duket kështu:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `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, ne fillojmë me një imazh docker:latest dhe vendosni disa variabla mjedisore të kërkuara nga Waypoint. Në kapitull script ne shkarkojmë ekzekutuesin më të fundit të Waypoint dhe e vendosim atë /usr/local/bin. Meqenëse vrapuesi ynë tashmë është i autorizuar në AWS, atëherë ne thjesht vrapojmë waypoint init, build, deploy и release.

Rezultati i detyrës së ndërtimit do të na tregojë pikën përfundimtare ku kemi mbështjellë aplikacionin:

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

Pika e rrugës një nga zgjidhje të shumta HashiCorp, të cilat funksionojnë shkëlqyeshëm me GitLab. Për shembull, përveç dorëzimit të aplikacionit, ne mund të orkestrojmë infrastrukturën bazë me të Terraform në GitLab. Për të standardizuar sigurinë SDLC, ne gjithashtu mund të zbatojmë GitLab me Vault për menaxhimin e sekreteve dhe shenjave në tubacionet CI/CD, duke ofruar një zgjidhje të plotë për zhvilluesit dhe administratorët që mbështeten në menaxhimin e fshehtë për zhvillimin, testimin dhe përdorimin e prodhimit.

Zgjidhjet e përbashkëta të zhvilluara nga HashiCorp dhe GitLab ndihmojnë kompanitë të gjejnë mënyrën më të mirë për të zhvilluar aplikacione duke siguruar menaxhim të qëndrueshëm të zinxhirit të furnizimit dhe infrastrukturës. Waypoint ka bërë një hap tjetër në drejtimin e duhur dhe ne presim zhvillimin e mëtejshëm të projektit. Mund të mësoni më shumë rreth Waypoint këtugjithashtu ia vlen të eksplorohet dokumentacionin и plani i zhvillimit projekti. Ne kemi shtuar njohuritë tona në Dokumentacioni i GitLab CICD. Nëse dëshironi ta provoni vetë, mund të shikoni shembullin e plotë të punës në këtë depo.

Ju mund 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 duke përfunduar kursin e videos "CI/CD në shembullin e Gitlab CI". Bashkohu tani!

Burimi: www.habr.com

Shto një koment