Hoe om HashiCorp Waypoint te gebruik om saam te werk met GitLab CI/CD

Hoe om HashiCorp Waypoint te gebruik om saam te werk met GitLab CI/CD

HashiCorp het 'n nuwe projek gewys waypoint op HashiCorp Digital. Dit gebruik 'n HCL-gebaseerde lΓͺer om die bou, aflewering en vrystelling van toepassings vir 'n verskeidenheid wolkplatforms te beskryf, wat wissel van Kubernetes tot AWS tot Google Cloud Run. Jy kan aan Waypoint dink as Terraform en Vagrant gekombineer om die proses van bou, versending en vrystelling van jou toepassings te beskryf.

Trouens, HashiCorp het Waypoint as oopbron vrygestel en kom met baie voorbeelde. Die orkestreerderlaag is aan jou, Waypoint kom as 'n uitvoerbare program wat jy direk op jou skootrekenaar of vanaf jou CI/CD-orkestrasie-instrument van jou keuse kan laat loop. Die teiken vir die implementering van jou toepassings is ook aan jou, aangesien Waypoint Kubernetes, Docker, Google Cloud Run, AWS ECS en meer ondersteun.

Na die lees van die awesome dokumentasie en die luuksste voorbeelde toepassings wat deur HashiCorp verskaf is, het ons besluit om Waypoint-orkestrasie van nader te bekyk deur GitLab CI/CD te gebruik. Om dit te doen, neem ons 'n eenvoudige Node.js-toepassing wat op AWS ECS loop uit die voorbeeldbewaarplek.

Nadat ons die bewaarplek gekloon het, kom ons kyk na die struktuur van die toepassing wat een bladsy vertoon:

Hoe om HashiCorp Waypoint te gebruik om saam te werk met GitLab CI/CD

Soos u dalk opgemerk het, het hierdie projek nie 'n Dockerfile nie. Hulle word nie in die voorbeeld bygevoeg nie, want ons het hulle in beginsel nie nodig nie, want Waypoint sal hulle vir ons versorg. Kom ons kyk na die lΓͺer van naderby waypoint.hclom te verstaan ​​wat dit sal doen:

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"
    }
  }
}

Tydens die boufase gebruik Waypoint Cloud Native Buildpacks (CNB) om die projek se programmeertaal te bepaal en 'n Docker-beeld te skep sonder om 'n Dockerfile te gebruik. In beginsel is dit dieselfde tegnologie wat GitLab gedeeltelik gebruik Auto DevOps by die Auto Bou-stap. Dit is goed om te sien dat CNCF se CNB meer aanvaarding onder industriegebruikers kry.

Sodra die prent gebou is, sal Waypoint dit outomaties na ons AWS ECR-register oplaai sodat dit gereed is vir aflewering. Sodra die bou voltooi is, gebruik die afleweringstap AWS ECS-byvoeging om ons toepassing na ons AWS-rekening te ontplooi.

Vanaf my skootrekenaar - alles is eenvoudig. Ek sit 'n Waypoint wat reeds geverifieer is in my AWS rekening en dit "werk net". Maar wat gebeur as ek verder wil gaan as my skootrekenaar? Of wil ek skielik hierdie ontplooiing outomatiseer as deel van my algehele CI/CD-pyplyn, waar my deurlopende integrasietoetse, sekuriteitstoetse en ander uitgevoer word? Dit is die deel van die storie waar GitLab CI/CD inkom!

NB As jy net van plan is om CI/CD te implementeer of wil begin om beste praktyke vir die bou van pyplyne toe te pas, let op Slurm se nuwe kursus "CI/CD gebruik Gitlab CI as 'n voorbeeld". Dit is nou beskikbaar teen voorafbestellingsprys.

Waypoint in GitLab CI/CD

Om dit alles in GitLab CI/CD te orkestreer, kom ons kyk na wat ons nodig het in ons lΓͺer .gitlab-ci.yml:

  • Eerstens het jy 'n basisbeeld nodig om daarin te loop. Waypoint werk op enige Linux-verspreiding, dit benodig net Docker, so ons kan met 'n generiese Docker-beeld werk.
  • Vervolgens moet jy Waypoint in hierdie prent installeer. In die toekoms kan ons insamel beeld meta bou en hou hierdie proses vir jouself in.
  • Uiteindelik sal ons die Waypoint-opdragte uitvoer

Die bogenoemde skets alles wat ons pyplyn nodig het om die skrifte uit te voer wat nodig is om die ontplooiing te voltooi, maar om na AWS te ontplooi sal ons nog een ding nodig hΓͺ: ons moet by ons AWS-rekening aangemeld wees. In die Waypoint-beskrywing daar is planne oor verifikasie en magtiging. HashiCorp het ook hierdie week 'n indrukwekkende projek vrygestel Boundary. Maar vir eers kan ons net die verifikasie en magtiging self hanteer.

Daar is verskeie opsies vir GitLab CICD-verifikasie in AWS. Die eerste opsie is om die ingeboude te gebruik HashiCorp kluis. Dit is wonderlik as jou span reeds Vault vir geloofsbriewebestuur gebruik. Nog 'n opsie wat werk as jou span magtiging met AWS IAM bestuur, is om seker te maak dat afleweringstake geaktiveer word deur GitLab Runner, gemagtig om die ontplooiing deur IAM uit te voer. Maar as jy net vertroud wil raak met Waypoint en dit vinnig wil doen, is daar een laaste opsie - voeg jou AWS API en geheime sleutels by GitLab CI/CD omgewingsveranderlikes AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Om dit alles saam te voeg

Sodra ons verifikasie verstaan, kan ons begin! Ons eindstryd .gitlab-ci.yml lyk soos volg:

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

Jy sien dat ons met 'n beeld begin docker:latest en stel verskeie omgewingsveranderlikes in wat deur Waypoint vereis word. In hoofstuk script ons laai die nuutste weergawe van die Waypoint-uitvoerbare af en installeer dit in /usr/local/bin. Aangesien ons hardloper reeds in AWS gemagtig is, hardloop ons dan eenvoudig waypoint init, build, deploy ΠΈ release.

Die uitset van die boutaak sal ons die eindpunt wys waar ons die toepassing uitgerol het:

Hoe om HashiCorp Waypoint te gebruik om saam te werk met GitLab CI/CD

Waypoint een van talle HashiCorp-oplossings, werk uitstekend met GitLab. Byvoorbeeld, bykomend tot die lewering van die toepassing, kan ons die onderliggende infrastruktuur orkestreer deur gebruik te maak Terraform op GitLab. Om SDLC-sekuriteit te standaardiseer, kan ons ook implementeer GitLab met Vault vir die bestuur van geheime en tekens in CI/CD-pyplyne, wat 'n holistiese oplossing bied vir ontwikkelaars en administrateurs wat staatmaak op geheimebestuur vir ontwikkeling, toetsing en produksiegebruik.

Die gesamentlike oplossings wat deur HashiCorp en GitLab ontwikkel is, help maatskappye om 'n beter manier te vind om toepassings te ontwikkel deur konsekwente bestuur van afleweringspyplyne en infrastruktuur te verskaf. Waypoint het nog 'n stap in die regte rigting geneem en ons sien uit na die voortgesette ontwikkeling van die projek. Jy kan meer uitvind oor Waypoint hier, ook die moeite werd om te verken dokumentasie ΠΈ ontwikkelingsplan projek. Ons het die kennis wat ons opgedoen het bygevoeg GitLab CICD dokumentasie. As jy alles self wil probeer, kan jy 'n volledige werkende voorbeeld inneem hierdie bewaarplek.

Jy kan die beginsels van CI/CD verstaan, al die ingewikkeldhede van werk met Gitlab CI bemeester en beste praktyke begin toepas deur 'n videokursus te neem "CI/CD gebruik Gitlab CI as 'n voorbeeld". Sluit by ons aan!

Bron: will.com

Voeg 'n opmerking