Bii o ṣe le lo HashiCorp Waypoint lati Ṣe ifowosowopo pẹlu GitLab CI/CD

Bii o ṣe le lo HashiCorp Waypoint lati Ṣe ifowosowopo pẹlu GitLab CI/CD

HashiCorp ṣe afihan iṣẹ akanṣe tuntun kan Oju -ọna on HashiCorp Digital. O nlo faili ti o da lori HCL lati ṣe apejuwe kikọ, ifijiṣẹ, ati idasilẹ awọn ohun elo fun orisirisi awọn iru ẹrọ awọsanma, ti o wa lati Kubernetes si AWS si Google Cloud Run. O le ronu Waypoint bi Terraform ati Vagrant ni idapo lati ṣapejuwe ilana ti kikọ, fifiranṣẹ, ati idasilẹ awọn ohun elo rẹ.

Otitọ lati dagba, HashiCorp ti tu Waypoint silẹ bi orisun ṣiṣi ati pe o wa pẹlu ọpọlọpọ awọn apẹẹrẹ. Layer orchestrator jẹ tirẹ, Waypoint wa bi ipaniyan ti o le ṣiṣẹ taara lori kọǹpútà alágbèéká rẹ tabi lati ohun elo orchestration CI/CD rẹ ti yiyan. Ibi-afẹde fun gbigbe awọn ohun elo rẹ tun wa si ọ, bi Waypoint ṣe atilẹyin Kubernetes, Docker, Google Cloud Run, AWS ECS, ati diẹ sii.

Lẹhin kika oniyi iwe aṣẹ ati awọn julọ fun adun apeere Awọn ohun elo ti a pese nipasẹ HashiCorp, a pinnu lati wo isunmọ si ọna orchestration Waypoint nipa lilo GitLab CI/CD. Lati ṣe eyi, a yoo mu ohun elo Node.js kan ti o nṣiṣẹ lori AWS ECS lati ibi ipamọ apẹẹrẹ.

Lẹhin pipade ibi ipamọ, jẹ ki a wo eto ti ohun elo ti n ṣafihan oju-iwe kan:

Bii o ṣe le lo HashiCorp Waypoint lati Ṣe ifowosowopo pẹlu GitLab CI/CD

Bi o ti le ṣe akiyesi, iṣẹ akanṣe yii ko ni Dockerfile kan. A ko fi wọn kun ninu apẹẹrẹ, nitori ni opo a ko nilo wọn, nitori Waypoint yoo ṣe abojuto wọn fun wa. Jẹ ki a wo faili naa ni pẹkipẹki waypoint.hcllati ni oye ohun ti yoo ṣe:

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

Lakoko ipele kikọ, Waypoint nlo Awọn idii Awujọ Native Cloud (CNB) lati pinnu ede siseto iṣẹ akanṣe ati ṣẹda aworan Docker laisi lilo Dockerfile kan. Ni opo, eyi jẹ imọ-ẹrọ kanna ti GitLab nlo ni apakan Laifọwọyi DevOps ni Auto Kọ igbese. O dara lati rii pe CNCF's CNB n gba isọdọmọ diẹ sii laarin awọn olumulo ile-iṣẹ.

Ni kete ti a ti kọ aworan naa, Waypoint yoo gbejade laifọwọyi si iforukọsilẹ AWS ECR wa nitorinaa o ti ṣetan fun ifijiṣẹ. Ni kete ti ikole ba ti pari, igbesẹ ifijiṣẹ lo AWS ECS afikun lati mu ohun elo wa lọ si akọọlẹ AWS wa.

Lati mi laptop - ohun gbogbo ni o rọrun. Mo fi Waypoint kan ti o ti jẹri tẹlẹ sinu akọọlẹ AWS mi ati pe “o kan ṣiṣẹ”. Ṣugbọn kini yoo ṣẹlẹ ti MO ba fẹ lọ kọja kọǹpútà alágbèéká mi? Tabi ṣe Mo fẹ lojiji lati ṣe adaṣe imuṣiṣẹ yii gẹgẹbi apakan ti opo gigun ti epo CI/CD gbogbogbo mi, nibiti awọn idanwo isọpọ mi ti nlọ lọwọ, awọn idanwo aabo, ati awọn miiran ti nṣiṣẹ? Eyi ni apakan itan nibiti GitLab CI/CD wa!

NB Ti o ba n gbero lati ṣe CI/CD tabi fẹ bẹrẹ lilo awọn iṣe ti o dara julọ fun kikọ awọn opo gigun ti epo, san ifojusi si iṣẹ-ẹkọ tuntun Slurm "CI/CD ni lilo Gitlab CI gẹgẹbi apẹẹrẹ". O wa bayi ni idiyele iṣaaju-ibere.

Waypoint ni GitLab CI/CD

Lati ṣeto gbogbo eyi ni GitLab CI/CD, jẹ ki a wo ohun ti a nilo ninu faili wa .gitlab-ci.yml:

  • Ni akọkọ, o nilo aworan ipilẹ lati ṣiṣẹ ninu rẹ. Waypoint ṣiṣẹ lori pinpin Linux eyikeyi, o nilo Docker nikan, nitorinaa a le ṣiṣẹ pẹlu aworan Docker jeneriki.
  • Nigbamii o nilo lati fi Waypoint sori aworan yii. Ni ojo iwaju a le gba aworan meta Kọ ati ki o gba ilana yii fun ara rẹ.
  • Ni ipari a yoo ṣiṣẹ awọn aṣẹ Waypoint

Eyi ti o wa loke ṣe alaye ohun gbogbo ti opo gigun ti epo yoo nilo lati ṣiṣe awọn iwe afọwọkọ ti o nilo lati pari imuṣiṣẹ, ṣugbọn lati fi ranṣẹ si AWS a yoo nilo ohun kan diẹ sii: a gbọdọ wọle sinu akọọlẹ AWS wa. Ni awọn Waypoint apejuwe awọn eto wa nipa ìfàṣẹsí ati ašẹ. HashiCorp tun ṣe ifilọlẹ iṣẹ akanṣe kan ni ọsẹ yii Iwọn. Ṣugbọn fun bayi, a le kan mu ijẹrisi ati aṣẹ funrara wa.

Awọn aṣayan pupọ wa fun GitLab CICD ìfàṣẹsí ni AWS. Aṣayan akọkọ ni lati lo ohun ti a ṣe sinu HashiCorp ifinkan. Eyi jẹ nla ti ẹgbẹ rẹ ba ti lo Vault tẹlẹ fun iṣakoso ijẹrisi. Aṣayan miiran ti o ṣiṣẹ ti ẹgbẹ rẹ ba n ṣakoso aṣẹ ni lilo AWS IAM ni lati ṣayẹwo pe awọn iṣẹ-ṣiṣe ifijiṣẹ ti nfa nipasẹ GitLab Isare, ti a fun ni aṣẹ lati ṣiṣẹ imuṣiṣẹ nipasẹ IAM. Ṣugbọn ti o ba kan fẹ lati faramọ pẹlu Waypoint ati pe o fẹ lati ṣe ni iyara, aṣayan ikẹhin kan wa - ṣafikun AWS API rẹ ati awọn bọtini Aṣiri si GitLab CI/CD awọn oniyipada ayika AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Fifi gbogbo rẹ papọ

Ni kete ti a ba loye ìfàṣẹsí, a le bẹrẹ! Ipari wa .gitlab-ci.yml wulẹ bi iyẹn:

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

O rii pe a bẹrẹ pẹlu aworan kan docker:latest ati ṣeto ọpọlọpọ awọn oniyipada ayika ti o nilo nipasẹ Waypoint. Ni ipin script a gba awọn titun ti ikede ti awọn Waypoint executable ki o si fi o sinu /usr/local/bin. Niwọn igba ti olusare wa ti ni aṣẹ tẹlẹ ni AWS, nigbamii ti a kan ṣiṣẹ waypoint init, build, deploy и release.

Ijade ti iṣẹ-ṣiṣe kikọ yoo fihan wa ni aaye ipari nibiti a ti yi ohun elo naa jade:

Bii o ṣe le lo HashiCorp Waypoint lati Ṣe ifowosowopo pẹlu GitLab CI/CD

Waypoint ọkan ninu ọpọlọpọ awọn solusan HashiCorp, ṣiṣẹ nla pẹlu GitLab. Fun apẹẹrẹ, ni afikun si jiṣẹ ohun elo, a le orchestrate awọn amayederun ti o wa labẹ lilo Terraform lori GitLab. Lati ṣe iwọn aabo SDLC, a tun le ṣe imuse GitLab pẹlu ifinkan fun iṣakoso awọn aṣiri ati awọn ami ni awọn opo gigun ti CI / CD, n pese ojutu pipe fun awọn olupilẹṣẹ ati awọn alakoso ti o gbẹkẹle iṣakoso asiri fun idagbasoke, idanwo, ati lilo iṣelọpọ.

Awọn ojutu apapọ ti o ni idagbasoke nipasẹ HashiCorp ati GitLab ṣe iranlọwọ fun awọn ile-iṣẹ lati wa ọna ti o dara julọ lati ṣe agbekalẹ awọn ohun elo nipa fifun iṣakoso deede ti awọn opo gigun ti ifijiṣẹ ati awọn amayederun. Waypoint ti gbe igbesẹ miiran ni itọsọna ti o tọ ati pe a nireti si ilọsiwaju ti iṣẹ akanṣe naa. O le wa diẹ sii nipa Waypoint nibi, tun tọ ṣawari iwe aṣẹ и idagbasoke ètò ise agbese. A ti ṣafikun imọ ti a ti gba si GitLab CICD iwe. Ti o ba fẹ gbiyanju ohun gbogbo funrararẹ, o le gba apẹẹrẹ iṣẹ pipe ni ibi ipamọ yii.

O le loye awọn ipilẹ ti CI / CD, ṣakoso gbogbo awọn intricacies ti ṣiṣẹ pẹlu Gitlab CI ati bẹrẹ lilo awọn iṣe ti o dara julọ nipa gbigbe ikẹkọ fidio kan "CI/CD ni lilo Gitlab CI gẹgẹbi apẹẹrẹ". Darapo mo wa!

orisun: www.habr.com

Fi ọrọìwòye kun