Hur man anvÀnder HashiCorp Waypoint för att samarbeta med GitLab CI/CD

Hur man anvÀnder HashiCorp Waypoint för att samarbeta med GitLab CI/CD

HashiCorp visade ett nytt projekt waypoint pÄ HashiCorp Digital. Den anvÀnder en HCL-baserad fil för att beskriva att bygga, skicka och slÀppa applikationer för olika molnplattformar, allt frÄn Kubernetes till AWS och Google Cloud Run. TÀnk pÄ Waypoint som Terraform och Vagrant sammansatta för att beskriva processen att bygga, skicka och slÀppa dina applikationer.

Vanligen har HashiCorp slÀppt Waypoint som öppen kÀllkod, och den kommer med mÄnga exempel. NivÄn pÄ orkestratorn Àr upp till dig, Waypoint kommer som en körbar fil som du kan köra direkt pÄ din bÀrbara dator eller frÄn ditt val av CI/CD-orkestreringsverktyg. Programmets implementeringsmÄl Àr ocksÄ upp till dig, eftersom Waypoint stöder Kubernetes, Docker, Google Cloud Run, AWS ECS och mer.

Efter att ha lÀst den fantastiska dokumentation och den snyggaste exempel applikationer frÄn HashiCorp bestÀmde vi oss för att titta nÀrmare pÄ Waypoint-orkestrering med GitLab CI/CD. För att göra detta tar vi en enkel Node.js-applikation som körs pÄ AWS ECS frÄn provförvaret.

Efter att ha klonat förvaret, lÄt oss titta pÄ strukturen för programmet som visar en sida:

Hur man anvÀnder HashiCorp Waypoint för att samarbeta med GitLab CI/CD

Som du kanske har mÀrkt finns det ingen Dockerfile i det hÀr projektet. De lÀggs inte till i exemplet eftersom vi egentligen inte behöver dem, eftersom Waypoint tar hand om dem Ät oss. LÄt oss ta en nÀrmare titt pÄ filen waypoint.hclför att förstÄ vad det kommer att göra:

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

Under byggfasen anvÀnder Waypoint Cloud Native Buildpacks (CNB) för att bestÀmma projektets programmeringssprÄk och skapa en Docker-bild utan att anvÀnda en Dockerfil. I princip Àr detta samma teknik som delvis anvÀnds av GitLab Auto DevOps i steget Autobygg. Det Àr fantastiskt att se CNCF:s CNB fÄ acceptans bland industrianvÀndare.

NÀr bilden Àr byggd kommer Waypoint automatiskt att ladda upp den till vÄrt AWS ECR-register sÄ att den Àr redo att skickas. I slutet av monteringen anvÀnder leveranssteget AWS ECS-tillÀgg för att distribuera vÄr applikation till vÄrt AWS-konto.

FrÄn min bÀrbara dator Àr det enkelt. Jag lÀgger in Waypoint som redan Àr autentiserat i mitt AWS-konto och det "bara fungerar". Men vad hÀnder om jag vill gÄ lÀngre Àn min bÀrbara dator? Eller kanske jag vill automatisera den hÀr distributionen som en del av min övergripande CI/CD-pipeline dÀr mina nuvarande integrationstester, sÀkerhetstester och andra körs? Det hÀr Àr den del av historien dÀr GitLab CI/CD kommer in!

NB Om du bara planerar att implementera CI/CD eller vill börja tillÀmpa de bÀsta metoderna för att bygga pipelines, var uppmÀrksam pÄ den nya Slurm-kursen. "CI/CD pÄ exemplet med Gitlab CI". Den Àr nu tillgÀnglig för förbestÀllningspris.

Waypoint i GitLab CI/CD

För att orkestrera allt detta i GitLab CI/CD, lÄt oss se vad vi behöver i vÄr fil .gitlab-ci.yml:

  • Först och frĂ€mst behöver du en basavbildning att köra inom. Waypoint körs pĂ„ vilken distribution som helst. Linux, den behöver bara Docker, sĂ„ vi kan köra frĂ„n en generisk Docker-avbildning.
  • DĂ€refter mĂ„ste du installera Waypoint i den hĂ€r bilden. I framtiden kan vi samla in metabyggd bild och containerisera denna process för dig sjĂ€lv.
  • Slutligen kommer vi att köra Waypoint-kommandona

Ovan Àr allt som vÄr pipeline behöver för att köra de skript som behövs för att utföra distributionen, men för att distribuera till AWS behöver vi en sak till: vi mÄste logga in pÄ vÄrt AWS-konto. I Waypoint-beskrivning har planer om autentisering och auktorisering. HashiCorp slÀppte ocksÄ ett imponerande projekt denna vecka Boundary. Men för nÀrvarande kan vi bara ta och hantera autentisering och auktorisering sjÀlva.

Det finns flera alternativ för GitLab CICD-autentisering pÄ AWS. Det första alternativet Àr att anvÀnda den inbyggda HashiCorp -valvet. Det Àr bra om ditt team redan anvÀnder Arkiv för autentiseringshantering. En annan metod som fungerar om ditt team hanterar auktorisering med AWS IAM Àr att kontrollera att leveransuppgifter utlöses via GitLab RunnerEn som Àr auktoriserad att starta distributionen via IAM. Men om du bara vill bli bekant med Waypoint och vill göra det snabbt, Àr det sista alternativet att lÀgga till din AWS API och hemliga nycklar till GitLab CI/CD miljövariabler AWS_ACCESS_KEY_ID О AWS_SECRET_ACCESS_KEY.

Att sÀtta allt ihop

NÀr vi har listat ut autentiseringen kan vi börja! VÄr final .gitlab-ci.yml ser ut sÄ hÀr:

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

Du ser att vi börjar med en bild docker:latest och stÀll in nÄgra miljövariabler som krÀvs av Waypoint. I kapitel script vi laddar ner den senaste körbara Waypoint-filen och lÀgger in den /usr/local/bin. Eftersom vÄr löpare redan Àr auktoriserad i AWS sÄ springer vi helt enkelt waypoint init, build, deploy О release.

Utdata frÄn bygguppgiften kommer att visa oss slutpunkten dÀr vi rullade applikationen:

Hur man anvÀnder HashiCorp Waypoint för att samarbeta med GitLab CI/CD

Waypoint en av mÄnga HashiCorp-lösningar, som fungerar utmÀrkt med GitLab. Till exempel kan vi förutom att leverera applikationen orkestrera den underliggande infrastrukturen med Terraform i GitLab. För att standardisera SDLC-sÀkerhet kan vi Àven implementera GitLab med Vault för hantering av hemligheter och tokens i CI/CD-pipelines, vilket ger en komplett lösning för utvecklare och administratörer som förlitar sig pÄ hemlig hantering för utveckling, testning och produktionsanvÀndning.

Gemensamma lösningar utvecklade av HashiCorp och GitLab hjÀlper företag att hitta det bÀsta sÀttet att utveckla applikationer genom att sÀkerstÀlla konsekvent försörjningskedja och infrastrukturhantering. Waypoint har tagit ytterligare ett steg i rÀtt riktning och vi ser fram emot fortsatt utveckling av projektet. Du kan lÀra dig mer om Waypoint hÀrocksÄ vÀrt att utforska dokumentation О utvecklingsplan projekt. Vi har tillfört vÄr kunskap GitLab CICD dokumentation. Om du vill prova det sjÀlv kan du kolla in det kompletta arbetsexemplet pÄ detta förrÄd.

Du kan förstÄ principerna för CI/CD, behÀrska alla finesser i att arbeta med Gitlab CI och börja tillÀmpa bÀsta praxis genom att slutföra videokursen "CI/CD pÄ exemplet med Gitlab CI". GÄ med nu!

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster