Uyisebenzisa njani iHashiCorp Waypoint ukusebenzisana neGitLab CI/CD

Uyisebenzisa njani iHashiCorp Waypoint ukusebenzisana neGitLab CI/CD

IHashiCorp ibonise iprojekthi entsha Indlela phezu HashiCorp Digital. Isebenzisa ifayile esekelwe kwi-HCL ukuchaza ukwakha, ukuhanjiswa, kunye nokukhululwa kwezicelo kwiindidi zamaqonga elifu, ukusuka kwi-Kubernetes ukuya kwi-AWS ukuya kwi-Google Cloud Run. Unokucinga ngeWaypoint njengeTerraform kunye neVagrant zidityanisiwe ukuchaza inkqubo yokwakha, ukuhambisa, kunye nokukhulula izicelo zakho.

Enyanisweni, i-HashiCorp ikhuphe i-Waypoint njengomthombo ovulekileyo kwaye iza nemizekelo emininzi. Umaleko weokhestra ixhomekeke kuwe, iWaypoint iza njengento ephunyeziweyo onokuthi uyibaleke ngokuthe ngqo kwilaptop yakho okanye kwisixhobo sakho somculo we-CI/CD osikhethileyo. Injongo yokuthumela izicelo zakho kukuwe, njengoko iWaypoint ixhasa iKubernetes, iDocker, iGoogle Cloud Run, iAWS ECS, kunye nokunye.

Emva kokufunda okumangalisayo uxwebhu kunye neyona nto inqabileyo imizekelo izicelo ezibonelelwe nguHashiCorp, sagqiba ekubeni sijonge ngakumbi i-Waypoint orchestration sisebenzisa iGitLab CI/CD. Ukwenza oku, siza kuthatha isicelo esilula se-Node.js esisebenza kwi-AWS ECS ukusuka kwindawo yokugcina imizekelo.

Emva kokudibanisa indawo yokugcina, makhe sijonge kwisakhiwo sesicelo esibonisa iphepha elinye:

Uyisebenzisa njani iHashiCorp Waypoint ukusebenzisana neGitLab CI/CD

Njengoko usenokuba uqaphele, le projekthi ayinayo iDockerfile. Azongezwa kumzekelo, kuba ngokomgaqo asizifuni, kuba i-Waypoint iya kusinyamekela. Makhe sijonge ngakumbi kwifayile waypoint.hclukuqonda ukuba iya kwenza ntoni na:

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

Ngexesha lesigaba sokwakha, i-Waypoint isebenzisa ii-Cloud Native Buildpacks (I-CNB) ukumisela ulwimi lwenkqubo yeprojekthi kwaye wenze umfanekiso weDocker ngaphandle kokusebenzisa iDockerfile. Ngokomgaqo, obu bubuchwephesha obufanayo obusetyenziswa yiGitLab ngokuyinxenye Auto DevOps kwi-Auto Yakha inyathelo. Kuhle ukubona ukuba i-CNCF's CNB ifumana ukwamkelwa ngakumbi phakathi kwabasebenzisi boshishino.

Nje ukuba umfanekiso wakhiwe, i-Waypoint iya kuyilayisha ngokuzenzekelayo kwirejista yethu ye-AWS ECR ngoko ilungele ukuhanjiswa. Nje ukuba ukwakhiwa kugqityiwe, inyathelo lokuhambisa lisetyenziswa I-AWS ECS yokongeza ukuthumela isicelo sethu kwiakhawunti yethu ye-AWS.

Ukusuka kwilaptop yam - yonke into ilula. Ndibeka iWaypoint esele iqinisekisiwe kwiakhawunti yam ye-AWS kwaye "isebenza nje". Kodwa kwenzeka ntoni ukuba ndifuna ukuya ngaphaya kwelaptop yam? Okanye ngaba ngesiquphe ndifuna ukwenza oku kuthunyelwa ngokuzenzekelayo njengenxalenye yombhobho wam we-CI/CD, apho uvavanyo lwam oluqhubekayo lokudityaniswa, uvavanyo lokhuseleko, kunye nezinye ziqhutywa? Le yinxalenye yebali apho i-GitLab CI/CD ingena khona!

NB Ukuba ucwangcisa nje ukuphumeza i-CI / CD okanye ufuna ukuqala ukusebenzisa iindlela ezifanelekileyo zokwakha imibhobho, nikela ingqalelo kwikhosi entsha kaSlurm. "CI/CD usebenzisa iGitlab CI njengomzekelo". Ngoku iyafumaneka ngexabiso loku-odolwa kwangaphambili.

Indawo yendlela kwiGitLab CI/CD

Ukucwangcisa konke oku kwiGitLab CI/CD, makhe sijonge into esiyifunayo kwifayile yethu. .gitlab-ci.yml:

  • Okokuqala, udinga umfanekiso osisiseko ukuze usebenze ngaphakathi kuwo. I-Waypoint isebenza kuyo nayiphi na i-Linux yokusasazwa, ifuna kuphela i-Docker, ukuze sikwazi ukuqhuba ngomfanekiso we-Docker oqhelekileyo.
  • Okulandelayo kufuneka ufake iWaypoint kulo mfanekiso. Kwixesha elizayo sinokuqokelela umfanekiso meta ukwakha kwaye uzigcinele le nkqubo ngokwakho.
  • Ekugqibeleni siya kuqhuba imiyalelo ye-Waypoint

Oku ngasentla kuchaza yonke into yethu yombhobho oya kuyidinga ukuqhuba izikripthi ezifunekayo ukugqiba ukuthunyelwa, kodwa ukuhambisa kwi-AWS siya kufuna enye into: kufuneka singene kwi-akhawunti yethu ye-AWS. Kwinkcazo yeNdlela kukho izicwangciso malunga nokuqinisekiswa kunye nogunyaziso. IHashiCorp ikwakhuphe iprojekthi enomtsalane kule veki Umda. Kodwa okwangoku, sinokuphatha ukuqinisekiswa kunye nogunyaziso ngokwethu.

Kukho iinketho ezininzi zoqinisekiso lwe-GitLab CICD kwi-AWS. Inketho yokuqala kukusebenzisa i-built-in IHashiCorp Vault. Oku kuhle ukuba iqela lakho sele lisebenzisa iVault kulawulo lweziqinisekiso. Olunye ukhetho olusebenzayo ukuba iqela lakho lilawula ugunyaziso usebenzisa i-AWS IAM kukukhangela ukuba imisebenzi yonikezelo iqhutywa Imbaleki yeGitLab, egunyazisiweyo ukuqhuba ukusasazwa nge-IAM. Kodwa ukuba ufuna nje ukuqhelana ne-Waypoint kwaye ufuna ukuyenza ngokukhawuleza, kukho ukhetho lokugqibela-yongeza i-AWS API yakho kunye nezitshixo eziMfihlo GitLab CI/CD iimeko eziguquguqukayo AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Ukubeka konke kunye

Nje ukuba siqonde ukuqinisekiswa, sinokuqala! Okokugqibela kwethu .gitlab-ci.yml libukeka kanje:

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 ukuba siqala ngomfanekiso docker:latest kwaye usete izinto ezininzi ezahlukeneyo zokusingqongileyo ezifunwa yi-Waypoint. Kwisahluko script sikhuphela inguqulelo yamva nje ye-Waypoint ephunyeziweyo kwaye siyifake kuyo /usr/local/bin. Kuba imbaleki yethu sele igunyaziswe kwi-AWS, ngokulandelayo sibaleka waypoint init, build, deploy ΠΈ release.

Isiphumo somsebenzi wokwakha siya kusibonisa isiphelo apho sikhuphe isicelo:

Uyisebenzisa njani iHashiCorp Waypoint ukusebenzisana neGitLab CI/CD

Indlela enye ye Izisombululo ezininzi zeHashiCorp, sebenza kakuhle ngeGitLab. Umzekelo, ukongeza ekuhambiseni isicelo, sinokwenza i-infrastructure esisiseko sisebenzisa ITerraform kwiGitLab. Ukulungelelanisa ukhuseleko lwe-SDLC, sinokuphumeza I-GitLab eneVault ukulawula iimfihlo kunye namathokheni kwimibhobho yeCI / CD, ukubonelela ngesisombululo esipheleleyo kubaphuhlisi kunye nabalawuli abaxhomekeke ekulawuleni iimfihlo zophuhliso, ukuvavanya, kunye nokusetyenziswa kwemveliso.

Izisombululo ezidibeneyo eziphuhliswe nguHashiCorp kunye neGitLab zinceda iinkampani ukuba zifumane indlela engcono yokuphuhlisa izicelo ngokubonelela ngolawulo olungaguqukiyo lwemibhobho yokuhanjiswa kunye neziseko zophuhliso. I-Waypoint ithathe elinye inyathelo kwicala elifanelekileyo kwaye sijonge phambili ekuphuhliseni okuqhubekayo kweprojekthi. Unokufumana okungakumbi malunga neWaypoint apha, nayo ifanele ukuphononongwa uxwebhu ΠΈ isicwangciso sophuhliso iprojekthi. Songeze ulwazi esiluzuzileyo kulo GitLab CICD amaxwebhu. Ukuba ufuna ukuzama yonke into ngokwakho, unokuthatha umzekelo opheleleyo osebenzayo lo vimba.

Unokuqonda imigaqo ye-CI / CD, ukwazi konke ukuntsonkotha kokusebenza kunye ne-Gitlab CI kwaye uqale ukusebenzisa ezona ndlela zibalaseleyo ngokuthatha ikhosi yevidiyo. "CI/CD usebenzisa iGitlab CI njengomzekelo". Dibana nathi!

umthombo: www.habr.com

Yongeza izimvo