Jinsi ya kutumia HashiCorp Waypoint Kushirikiana na GitLab CI/CD

Jinsi ya kutumia HashiCorp Waypoint Kushirikiana na GitLab CI/CD

HashiCorp ilionyesha mradi mpya Njia ya njia juu ya HashiCorp Digital. Inatumia faili yenye msingi wa HCL kuelezea ujenzi, usafirishaji, na kutoa programu kwa majukwaa mbalimbali ya wingu kuanzia Kubernetes hadi AWS na Google Cloud Run. Fikiria Waypoint kama Terraform na Vagrant zikiwekwa pamoja kuelezea mchakato wa kujenga, kusafirisha, na kutoa maombi yako.

Kwa kweli, HashiCorp imetoa Waypoint kama chanzo wazi, na inakuja na mifano mingi. Kiwango cha orchestrator ni juu yako, Waypoint inakuja kama inayoweza kutekelezeka ambayo unaweza kukimbia moja kwa moja kwenye kompyuta yako ndogo au kutoka kwa zana yako ya kuchagua ya CI/CD ya ochestration. Lengo la kusambaza programu pia ni juu yako, kwani Waypoint hutumia Kubernetes, Docker, Google Cloud Run, AWS ECS, na zaidi.

Baada ya kusoma ya kushangaza nyaraka na bora zaidi mifano maombi yaliyotolewa na HashiCorp, tuliamua kuangalia kwa karibu uimbaji wa Waypoint na GitLab CI/CD. Ili kufanya hivyo, tutachukua programu rahisi ya Node.js inayoendeshwa kwenye AWS ECS kutoka kwa hazina ya sampuli.

Baada ya kuweka hazina, wacha tuangalie muundo wa programu inayoonyesha ukurasa mmoja:

Jinsi ya kutumia HashiCorp Waypoint Kushirikiana na GitLab CI/CD

Kama unaweza kuwa umegundua, hakuna Dockerfile katika mradi huu. Hazijaongezwa kwenye mfano kwa sababu hatuzihitaji sana, kwa sababu Waypoint itatutunza. Hebu tuangalie kwa karibu faili waypoint.hclkuelewa itafanya nini:

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

Wakati wa awamu ya ujenzi, Waypoint hutumia Cloud Native Buildpacks (CNB) kuamua lugha ya programu ya mradi na kuunda picha ya Docker bila kutumia Dockerfile. Kimsingi, hii ni teknolojia sawa ambayo inatumiwa na GitLab kwa sehemu DevOps za Kiotomatiki katika hatua ya Kujenga Kiotomatiki. Inafurahisha kuona CNB ya CNCF ikikubalika miongoni mwa watumiaji wa sekta hiyo.

Picha ikishaundwa, Waypoint itaipakia kiotomatiki kwenye sajili yetu ya AWS ECR ili iwe tayari kusafirishwa. Mwishoni mwa mkusanyiko, hatua ya utoaji hutumia Nyongeza ya AWS ECS kupeleka maombi yetu kwa akaunti yetu ya AWS.

Kutoka kwa kompyuta yangu ndogo ni rahisi. Niliweka Waypoint ambayo tayari imethibitishwa katika akaunti yangu ya AWS na "inafanya kazi tu". Lakini nini kitatokea ikiwa ninataka kwenda zaidi ya kompyuta yangu ndogo? Au labda ninataka kugeuza uwekaji kiotomatiki kama sehemu ya bomba langu la jumla la CI/CD ambapo majaribio yangu ya sasa ya ujumuishaji, majaribio ya usalama, na mengine yanaendeshwa? Hii ndio sehemu ya hadithi ambapo GitLab CI/CD inakuja!

NB Ikiwa unapanga tu kutekeleza CI/CD au unataka kuanza kutumia mbinu bora za ujenzi wa mabomba, zingatia kozi mpya ya Slurm. "CI/CD kwa mfano wa Gitlab CI". Sasa inapatikana kwa bei ya kuagiza mapema.

Njia katika GitLab CI/CD

Ili kupanga haya yote katika GitLab CI/CD, wacha tuone kile tunachohitaji kwenye faili yetu. .gitlab-ci.yml:

  • Kwanza kabisa, unahitaji picha ya msingi ili kukimbia ndani yake. Waypoint inaendesha usambazaji wowote wa Linux, inahitaji Docker pekee, ili tuweze kukimbia na picha ya kawaida ya Docker.
  • Ifuatayo, unahitaji kusakinisha Waypoint kwenye picha hii. Katika siku zijazo tunaweza kukusanya meta kujenga picha na uweke mchakato huu kwa ajili yako mwenyewe.
  • Hatimaye tutaendesha amri za Waypoint

Hapo juu ni kila kitu bomba letu litahitaji kuendesha hati zinazohitajika kutekeleza utumaji, lakini ili kupeleka kwa AWS, tunahitaji jambo moja zaidi: lazima tuingie kwenye akaunti yetu ya AWS. Katika maelezo ya Waypoint kuwa na mipango kuhusu uthibitishaji na idhini. HashiCorp pia ilitoa mradi wa kuvutia wiki hii Mpaka. Lakini kwa sasa, tunaweza tu kuchukua na kushughulikia uthibitishaji na uidhinishaji sisi wenyewe.

Kuna chaguzi kadhaa za uthibitishaji wa GitLab CICD kwenye AWS. Chaguo la kwanza ni kutumia iliyojengwa Vault ya HashiCorp. Ni sawa ikiwa timu yako tayari inatumia Vault kwa usimamizi wa kitambulisho. Njia nyingine inayofanya kazi ikiwa timu yako inadhibiti uidhinishaji kwa kutumia AWS IAM ni kuangalia kama kazi za uwasilishaji zimeanzishwa kupitia. Mkimbiaji wa GitLabA ambayo imeidhinishwa kuanza kusambaza kupitia IAM. Lakini ikiwa unataka tu kufahamiana na Waypoint na unataka kuifanya haraka, chaguo la mwisho ni kuongeza API yako ya AWS na funguo za Siri kwa Viwango vya mazingira vya GitLab CI/CD AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Kuweka yote pamoja

Mara tu tulipogundua uthibitishaji, tunaweza kuanza! Mwisho wetu .gitlab-ci.yml inaonekana kama hii:

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

Unaona tunaanza na picha docker:latest na kuweka vigezo vichache vya mazingira vinavyohitajika na Waypoint. Katika sura script tunapakua Waypoint ya hivi punde inayoweza kutekelezwa na kuiweka /usr/local/bin. Kwa kuwa mkimbiaji wetu tayari ameidhinishwa katika AWS, basi tunaendesha tu waypoint init, build, deploy ΠΈ release.

Matokeo ya kazi ya ujenzi yatatuonyesha mwisho ambapo tuliweka programu:

Jinsi ya kutumia HashiCorp Waypoint Kushirikiana na GitLab CI/CD

waypoint moja ya suluhisho nyingi za HashiCorp, ambayo inafanya kazi vizuri na GitLab. Kwa mfano, pamoja na kuwasilisha maombi, tunaweza kupanga miundombinu ya msingi nayo Terraform katika GitLab. Ili kusawazisha usalama wa SDLC, tunaweza pia kutekeleza GitLab na Vault kwa ajili ya kudhibiti siri na ishara katika mabomba ya CI/CD, kutoa suluhisho kamili kwa watengenezaji na wasimamizi wanaotegemea usimamizi wa siri kwa maendeleo, majaribio na matumizi ya uzalishaji.

Masuluhisho ya pamoja yaliyotengenezwa na HashiCorp na GitLab husaidia makampuni kupata njia bora ya kuunda programu kwa kuhakikisha usimamizi thabiti wa ugavi na miundombinu. Waypoint imechukua hatua nyingine katika mwelekeo sahihi na tunatarajia maendeleo zaidi ya mradi. Unaweza kujifunza zaidi kuhusu Waypoint hapapia inafaa kuchunguza nyaraka ΠΈ mpango wa maendeleo mradi. Tumeongeza ujuzi wetu kwa Nyaraka za GitLab CICD. Ikiwa unataka kujaribu mwenyewe, unaweza kuangalia mfano kamili wa kufanya kazi kwa hazina hii.

Unaweza kuelewa kanuni za CI / CD, kujua hila zote za kufanya kazi na Gitlab CI na kuanza kutumia mazoea bora kwa kukamilisha kozi ya video. "CI/CD kwa mfano wa Gitlab CI". Jiunge sasa!

Chanzo: mapenzi.com

Kuongeza maoni