Isetshenziswa kanjani i-HashiCorp Waypoint ukuze Uhlanganyele ne-GitLab CI/CD

Isetshenziswa kanjani i-HashiCorp Waypoint ukuze Uhlanganyele ne-GitLab CI/CD

I-HashiCorp ibonise iphrojekthi entsha I-Waypoint on I-HashiCorp Digital. Isebenzisa ifayela elisuselwe ku-HCL ukuchaza ukwakhiwa, ukulethwa, nokukhishwa kwezinhlelo zokusebenza zamapulatifomu amafu ahlukahlukene, kusukela ku-Kubernetes kuya ku-AWS kuya ku-Google Cloud Run. Ungacabanga nge-Waypoint njenge-Terraform ne-Vagrant kuhlangene ukuchaza inqubo yokwakha, ukuthumela, kanye nokukhulula izicelo zakho.

Eqinisweni, i-HashiCorp ikhiphe i-Waypoint njengomthombo ovulekile futhi iza nezibonelo eziningi. Isendlalelo se-orchestrator kukuwe, i-Waypoint iza njengendlela esebenzisekayo ongayigijima ngokuqondile kukhompyutha yakho ephathekayo noma ethuluzini lakho le-CI/CD le-orchestration olikhethayo. Okuqondiwe kokuphakela izinhlelo zakho zokusebenza nakho kukuwe, njengoba i-Waypoint isekela i-Kubernetes, i-Docker, i-Google Cloud Run, i-AWS ECS, nokuningi.

Ngemva kokufunda okumangalisayo imibhalo futhi okunethezeka kakhulu izibonelo izicelo ezinikezwe i-HashiCorp, sinqume ukubhekisisa i-Waypoint orchestration sisebenzisa i-GitLab CI/CD. Ukuze senze lokhu, sizothatha uhlelo lokusebenza olulula lwe-Node.js olusebenza ku-AWS ECS kusuka kunqolobane yezibonelo.

Ngemva kokuhlanganisa indawo yokugcina, ake sibheke ukwakheka kohlelo lokusebenza olubonisa ikhasi elilodwa:

Isetshenziswa kanjani i-HashiCorp Waypoint ukuze Uhlanganyele ne-GitLab CI/CD

Njengoba kungenzeka ukuthi ubonile, le phrojekthi ayinayo i-Dockerfile. Azifakwa esibonelweni, ngoba ngokwesimiso asizidingi, ngoba i-Waypoint izosinakekela. Ake sibhekisise ifayela waypoint.hclukuqonda ukuthi izokwenzani:

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

Phakathi nesigaba sokwakha, i-Waypoint isebenzisa ama-Cloud Native Buildpacks (I-CNB) ukunquma ulimi lohlelo lwephrojekthi bese udala isithombe se-Docker ngaphandle kokusebenzisa i-Dockerfile. Empeleni, lobu ubuchwepheshe obufanayo obusetshenziswa i-GitLab ngokwengxenye I-Auto DevOps esinyathelweni Sokwakha Okuzenzakalelayo. Kuhle ukubona ukuthi i-CNB ye-CNCF ithola ukutholwa okwengeziwe phakathi kwabasebenzisi bemboni.

Uma isithombe sesakhiwe, i-Waypoint izosilayisha ngokuzenzakalelayo kusibhalisi sethu se-AWS ECR ukuze silungele ukulethwa. Lapho ukwakhiwa sekuqediwe, isinyathelo sokulethwa siyasetshenziswa Isengezo se-AWS ECS ukuthumela isicelo sethu ku-akhawunti yethu ye-AWS.

Kusuka kwi-laptop yami - konke kulula. Ngibeka i-Waypoint esivele igunyaziwe ku-akhawunti yami ye-AWS futhi "isebenza nje". Kodwa kwenzekani uma ngifuna ukweqa i-laptop yami? Noma ingabe ngokuzumayo ngifuna ukwenza lokhu kuthunyelwa ngokuzenzakalelayo njengengxenye yepayipi lami lonke le-CI/CD, lapho kuhlolwa khona ukuhlanganiswa okuqhubekayo, ukuhlolwa kokuphepha, nokunye? Lena ingxenye yendaba lapho i-GitLab CI/CD ingena khona!

NB Uma uhlela ukusebenzisa i-CI/CD noma ufuna ukuqala ukusebenzisa izindlela ezingcono kakhulu zokwakha amapayipi, naka isifundo esisha sika-Slurm. "I-CI/CD isebenzisa i-Gitlab CI njengesibonelo". Manje isiyatholakala ngentengo yoku-oda kusengaphambili.

I-Waypoint ku-GitLab CI/CD

Ukuhlela konke lokhu ku-GitLab CI/CD, ake sibheke esikudingayo kufayela lethu. .gitlab-ci.yml:

  • Okokuqala, udinga isithombe esiyisisekelo ukuze usebenze ngaphakathi kuso. I-Waypoint isebenza kunoma yikuphi ukusatshalaliswa kwe-Linux, idinga kuphela i-Docker, ukuze sikwazi ukusebenzisa isithombe se-Docker esijwayelekile.
  • Okulandelayo udinga ukufaka i-Waypoint kulesi sithombe. Ngokuzayo singase siqoqe ukwakhiwa kwemeta yesithombe futhi uzihlanganisele le nqubo ngokwakho.
  • Ekugcineni sizosebenzisa imiyalo ye-Waypoint

Okungenhla kuveza konke okuzodinga ipayipi lethu ukuze kusetshenziswe imibhalo edingekayo ukuze kuqedelwe ukusetshenziswa, kodwa ukuze sithumele ku-AWS sizodinga enye into: kufanele singene ku-akhawunti yethu ye-AWS. Encazelweni ye-Waypoint zikhona izinhlelo mayelana nokuqinisekisa nokugunyazwa. I-HashiCorp iphinde yakhipha iphrojekthi ehlaba umxhwele kuleli sonto Umkhawulo. Kodwa okwamanje, singakwazi ukusingatha ukuqinisekiswa nokugunyazwa ngokwethu.

Kunezinketho ezimbalwa zokuqinisekisa i-GitLab CICD ku-AWS. Inketho yokuqala ukusebenzisa eyakhelwe ngaphakathi I-HashiCorp Vault. Lokhu kuhle uma iqembu lakho selivele lisebenzisa i-Vault ekuphatheni kokuqinisekisa. Enye inketho esebenzayo uma ithimba lakho liphethe ukugunyazwa lisebenzisa i-AWS IAM ukuhlola ukuthi imisebenzi yokulethwa iqalwa ngokusebenzisa I-GitLab Runner, egunyazwe ukuqalisa ukusetshenziswa nge-IAM. Kodwa uma ufuna nje ukujwayela i-Waypoint futhi ufuna ukuyenza ngokushesha, kunenketho yokugcina eyodwa - engeza i-AWS API yakho kanye nezikhiye eziyimfihlo ku- I-GitLab CI/CD imvelo eguquguqukayo AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Ukuhlanganisa konke

Uma sesikuqonda ukuqinisekiswa, singaqala! Okokugcina kwethu .gitlab-ci.yml kubukeka kanjena:

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

Uyabona ukuthi siqala ngesithombe docker:latest futhi usethe okuguquguqukayo kwemvelo okuningana okudingwa yi-Waypoint. Esahlukweni script silanda inguqulo yakamuva ye-Waypoint esebenzisekayo futhi siyifake kuyo /usr/local/bin. Njengoba umgijimi wethu esegunyaziwe ku-AWS, ngokulandelayo sivele sigijime waypoint init, build, deploy ΠΈ release.

Okukhiphayo komsebenzi wokwakha kuzosibonisa indawo yokugcina lapho sikhiphe khona isicelo:

Isetshenziswa kanjani i-HashiCorp Waypoint ukuze Uhlanganyele ne-GitLab CI/CD

I-Waypoint eyodwa ye izixazululo eziningi ze-HashiCorp, sebenza kahle nge-GitLab. Isibonelo, ngaphezu kokuletha uhlelo lokusebenza, singahlela ingqalasizinda eyisisekelo sisebenzisa I-Terraform ku-GitLab. Ukuze ulinganise ukuphepha kwe-SDLC, singasebenzisa futhi I-GitLab ene-Vault zokuphatha izimfihlo namathokheni kumapayipi e-CI/CD, ukuhlinzeka ngesixazululo esiphelele sabathuthukisi nabaphathi abathembele ekuphathweni kwezimfihlo ukuze kuthuthukiswe, kuhlolwe, nasekusetshenzisweni kokukhiqiza.

Izixazululo ezihlanganyelwe ezithuthukiswe i-HashiCorp kanye ne-GitLab zisiza izinkampani zithole indlela engcono yokuthuthukisa izinhlelo zokusebenza ngokunikeza ukuphathwa okungaguquki kwamapayipi okulethwa nengqalasizinda. I-Waypoint ithathe esinye isinyathelo endleleni efanele futhi sibheke phambili ekuthuthukisweni okuqhubekayo kwephrojekthi. Ungathola kabanzi mayelana ne-Waypoint lapha, futhi kufanelekile ukuhlola imibhalo ΠΈ uhlelo lwentuthuko iphrojekthi. Singeze ulwazi esiluzuzile kulo Imibhalo ye-GitLab CICD. Uma ufuna ukuzama yonke into ngokwakho, ungathatha isibonelo esiphelele sokusebenza ku lenqolobane.

Ungakwazi ukuqonda izimiso ze-CI/CD, ukwazi zonke izinselele zokusebenza ne-Gitlab CI futhi uqale ukusebenzisa imikhuba engcono kakhulu ngokuthatha isifundo sevidiyo. "I-CI/CD isebenzisa i-Gitlab CI njengesibonelo". Sijoyine!

Source: www.habr.com

Engeza amazwana