Momwe mungagwiritsire ntchito HashiCorp Waypoint kuti mugwirizane ndi GitLab CI/CD

Momwe mungagwiritsire ntchito HashiCorp Waypoint kuti mugwirizane ndi GitLab CI/CD

HashiCorp adawonetsa ntchito yatsopano njira pa HashiCorp Digital. Imagwiritsa ntchito fayilo yochokera ku HCL pofotokoza za kumanga, kutumiza, ndi kutulutsa mapulogalamu amitundu yosiyanasiyana yamtambo, kuyambira Kubernetes mpaka AWS mpaka Google Cloud Run. Mutha kuganiza za Waypoint ngati Terraform ndi Vagrant ophatikizidwa kuti afotokoze njira yomanga, kutumiza, ndikutulutsa mapulogalamu anu.

Zowonadi, HashiCorp yatulutsa Waypoint ngati gwero lotseguka ndipo imabwera ndi zitsanzo zambiri. Gulu la orchestrator lili ndi inu, Waypoint imabwera ngati yotheka yomwe mutha kuthamanga mwachindunji pa laputopu yanu kapena kuchokera ku chida chanu cha CI / CD cha orchestration. Cholinga chotumizira mapulogalamu anu chilinso ndi inu, popeza Waypoint imathandizira Kubernetes, Docker, Google Cloud Run, AWS ECS, ndi zina zambiri.

Pambuyo kuwerenga zozizwitsa zolemba ndi zapamwamba kwambiri zitsanzo mapulogalamu operekedwa ndi HashiCorp, tinaganiza zoyang'anitsitsa nyimbo za Waypoint pogwiritsa ntchito GitLab CI/CD. Kuti tichite izi, titenga pulogalamu yosavuta ya Node.js yomwe ikuyenda pa AWS ECS kuchokera pazosungiramo zitsanzo.

Pambuyo popanga chosungira, tiyeni tiwone momwe pulogalamuyo ikuwonetsera tsamba limodzi:

Momwe mungagwiritsire ntchito HashiCorp Waypoint kuti mugwirizane ndi GitLab CI/CD

Monga mukuwonera, polojekitiyi ilibe Dockerfile. Iwo sanawonjezedwe mu chitsanzo, chifukwa kwenikweni sitiwasowa, chifukwa Waypoint adzatisamalira. Tiyeni tiwone bwinobwino fayilo waypoint.hclkuti amvetse zomwe adzachita:

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

Panthawi yomanga, Waypoint amagwiritsa ntchito Cloud Native Buildpacks (CNB) kuti mudziwe chilankhulo cha pulogalamuyo ndikupanga chithunzi cha Docker popanda kugwiritsa ntchito Dockerfile. M'malo mwake, iyi ndiukadaulo womwewo womwe GitLab amagwiritsa ntchito mbali ina Auto DevOps pa sitepe ya Auto Build. Ndi bwino kuona kuti CNCF a CNB akupeza kwambiri kutengera pakati owerenga makampani.

Chithunzicho chikamangidwa, Waypoint imangoyiyika ku registry yathu ya AWS ECR kotero ili yokonzeka kutumizidwa. Mukamaliza kumanga, sitepe yobweretsera ikugwiritsidwa ntchito Zowonjezera za AWS ECS kutumiza ntchito yathu ku akaunti yathu ya AWS.

Kuchokera pa laputopu yanga - zonse ndi zophweka. Ndinayika Waypoint yomwe yatsimikiziridwa kale mu akaunti yanga ya AWS ndipo "imagwira ntchito". Koma chimachitika ndi chiyani ngati ndikufuna kupitilira laputopu yanga? Kapena kodi mwadzidzidzi ndikufuna kuyika izi ngati gawo la payipi yanga yonse ya CI/CD, komwe kuyezetsa kwanga kosalekeza kophatikizana, kuyesa chitetezo, ndi zina kumayendetsedwa? Ili ndi gawo la nkhani yomwe GitLab CI/CD imabwera!

NB Ngati mukungokonzekera kukhazikitsa CI/CD kapena mukufuna kuyamba kugwiritsa ntchito njira zabwino zopangira mapaipi, mverani maphunziro atsopano a Slurm. "CI/CD pogwiritsa ntchito Gitlab CI monga chitsanzo". Tsopano ikupezeka pamtengo woyitanitsa.

Waypoint mu GitLab CI/CD

Kuti tikonze zonsezi mu GitLab CI/CD, tiyeni tiwone zomwe tikufuna mufayilo yathu. .gitlab-ci.yml:

  • Choyamba, muyenera chithunzi choyambira kuti muyendetse mkati mwake. Waypoint imagwira ntchito pakugawa kulikonse kwa Linux, imangofunika Docker, kuti titha kuthamanga ndi chithunzi cha generic Docker.
  • Kenako muyenera kukhazikitsa Waypoint pachithunzichi. M'tsogolomu tikhoza kusonkhanitsa chithunzi meta build ndikuyika ndondomekoyi nokha.
  • Pomaliza tidzayendetsa malamulo a Waypoint

Zomwe zili pamwambazi zikuwonetsa zonse zomwe mapaipi athu adzafunikira kuti tigwiritse ntchito zolembedwa zomwe zikufunika kuti amalize kutumiza, koma kuti titumize ku AWS tidzafunikanso chinthu chimodzi: tiyenera kulowa muakaunti yathu ya AWS. M'mafotokozedwe a Waypoint pali mapulani za kutsimikizika ndi chilolezo. HashiCorp idatulutsanso ntchito yochititsa chidwi sabata ino Malire. Koma pakadali pano, titha kungoyang'anira kutsimikizika ndi kuvomereza tokha.

Pali zosankha zingapo za kutsimikizika kwa GitLab CICD mu AWS. Njira yoyamba ndiyo kugwiritsa ntchito zomanga Malingaliro a kampani HashiCorp Vault. Izi ndizabwino ngati gulu lanu likugwiritsa ntchito kale Vault pakuwongolera mbiri. Njira ina yomwe imagwira ntchito ngati gulu lanu likuyang'anira chilolezo pogwiritsa ntchito AWS IAM ndikuwonetsetsa kuti ntchito zobweretsera zimayambitsidwa. GitLab Wothamanga, ololedwa kuyendetsa ntchito kudzera mu IAM. Koma ngati mukungofuna kudziwa bwino Waypoint ndikufuna kuchita mwachangu, pali njira imodzi yomaliza - onjezani makiyi anu a AWS API ndi Chinsinsi ku. GitLab CI/CD zosintha zachilengedwe AWS_ACCESS_KEY_ID ΠΈ AWS_SECRET_ACCESS_KEY.

Kuziyika zonse pamodzi

Tikamvetsetsa kutsimikizika, titha kuyamba! Chomaliza chathu .gitlab-ci.yml zikuwoneka ngati izi:

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

Mukuwona kuti timayamba ndi chithunzi docker:latest ndikukhazikitsa zosintha zingapo zachilengedwe zomwe Waypoint amafuna. Mu mutu script timatsitsa mtundu waposachedwa wa Waypoint yomwe ingathe kukwaniritsidwa ndikuyiyikamo /usr/local/bin. Popeza wothamanga wathu adaloledwa kale ku AWS, kenako timangothamanga waypoint init, build, deploy ΠΈ release.

Zotsatira za ntchito yomanga zidzatiwonetsa pomaliza pomwe tidatulutsa pulogalamuyi:

Momwe mungagwiritsire ntchito HashiCorp Waypoint kuti mugwirizane ndi GitLab CI/CD

Waypoint imodzi mwa mayankho ambiri a HashiCorp, imagwira ntchito bwino ndi GitLab. Mwachitsanzo, kuwonjezera pakupereka pulogalamuyo, titha kulinganiza zida zomwe tikugwiritsa ntchito Terraform pa GitLab. Kuti tikhazikitse chitetezo cha SDLC, titha kugwiritsanso ntchito GitLab yokhala ndi Vault poyang'anira zinsinsi ndi zizindikiro mu mapaipi a CI / CD, kupereka yankho lathunthu kwa omanga ndi olamulira omwe amadalira kasamalidwe ka zinsinsi pa chitukuko, kuyesa, ndi kugwiritsa ntchito kupanga.

Mayankho ophatikizana opangidwa ndi HashiCorp ndi GitLab amathandizira makampani kupeza njira yabwinoko yopangira mapulogalamu popereka kasamalidwe kosasinthika kwa mapaipi otumizira ndi zomangamanga. Waypoint atenga sitepe ina m'njira yoyenera ndipo tikuyembekezera kupititsa patsogolo ntchitoyo. Mutha kudziwa zambiri za Waypoint apa, nayonso yoyenera kufufuza zolemba ΠΈ ndondomeko yachitukuko polojekiti. Tawonjezera chidziwitso chomwe tapeza Zolemba za GitLab CICD. Ngati mukufuna kuyesa zonse nokha, mutha kutenga chitsanzo chathunthu chogwira ntchito chosungira ichi.

Mutha kumvetsetsa mfundo za CI/CD, kudziwa zovuta zonse zogwirira ntchito ndi Gitlab CI ndikuyamba kugwiritsa ntchito njira zabwino kwambiri pochita maphunziro a kanema. "CI/CD pogwiritsa ntchito Gitlab CI monga chitsanzo". Titsatireni!

Source: www.habr.com

Kuwonjezera ndemanga