Kā izmantot HashiCorp Waypoint, lai sadarbotos ar GitLab CI/CD

Kā izmantot HashiCorp Waypoint, lai sadarbotos ar GitLab CI/CD

HashiCorp parādīja jaunu projektu Ceļa punkts par HashiCorp Digital. Tas izmanto uz HCL balstītu failu, lai aprakstītu lietojumprogrammu izveidi, piegādi un izlaišanu dažādām mākoņa platformām, sākot no Kubernetes līdz AWS un Google Cloud Run. Padomājiet par Waypoint kā Terraform un Vagrant, kas apvienoti, lai aprakstītu jūsu lietojumprogrammu izveides, piegādes un izlaišanas procesu.

Patiesi, HashiCorp ir izlaidusi Waypoint kā atvērtā koda versiju, un tam ir daudz piemēru. Orķestratora līmenis ir atkarīgs no jums, Waypoint ir izpildāms fails, kuru varat palaist tieši savā klēpjdatorā vai no izvēlētā CI/CD orķestrēšanas rīka. Lietojumprogrammas izvietošanas mērķis ir atkarīgs arī no jums, jo Waypoint atbalsta Kubernetes, Docker, Google Cloud Run, AWS ECS un daudz ko citu.

Pēc lieliskā izlasīšanas dokumentācija un stilīgākais piemēri lietojumprogrammas, ko nodrošina HashiCorp, mēs nolēmām tuvāk apskatīt Waypoint orķestrēšanu ar GitLab CI/CD. Lai to izdarītu, mēs no paraugu krātuves paņemsim vienkāršu Node.js lietojumprogrammu, kas darbojas AWS ECS.

Pēc repozitorija klonēšanas apskatīsim lietojumprogrammas struktūru, kas parāda vienu lapu:

Kā izmantot HashiCorp Waypoint, lai sadarbotos ar GitLab CI/CD

Kā jūs, iespējams, pamanījāt, šajā projektā nav Dockerfile. Piemērā tie nav pievienoti, jo mums tie nav īsti vajadzīgi, jo Waypoint par tiem parūpēsies mūsu vietā. Apskatīsim failu tuvāk waypoint.hcllai saprastu, ko tas darīs:

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

Būvēšanas fāzē Waypoint izmanto Cloud Native Buildpacks (CNB), lai noteiktu projekta programmēšanas valodu un izveidotu Docker attēlu, neizmantojot Dockerfile. Principā šī ir tā pati tehnoloģija, ko daļēji izmanto GitLab Auto DevOps automātiskās izveides solī. Ir lieliski redzēt, ka CNCF CNB arvien vairāk gūst popularitāti nozares lietotāju vidū.

Kad attēls ir izveidots, Waypoint automātiski augšupielādēs to mūsu AWS ECR reģistrā, lai tas būtu gatavs nosūtīšanai. Montāžas beigās tiek izmantots piegādes posms AWS ECS papildinājums lai izvietotu mūsu lietojumprogrammu mūsu AWS kontā.

No mana klēpjdatora tas ir viegli. Es ievietoju Waypoint, kas jau ir autentificēts manā AWS kontā, un tas "tikai darbojas". Bet kas notiek, ja es vēlos strādāt tālāk par savu klēpjdatoru? Vai varbūt es vēlos automatizēt šo izvietošanu kā daļu no mana kopējā CI/CD konveijera, kurā darbojas mani pašreizējie integrācijas testi, drošības testi un citi? Šī ir stāsta daļa, kurā parādās GitLab CI/CD!

NB Ja jūs tikai plānojat ieviest CI / CD vai vēlaties sākt piemērot labāko praksi cauruļvadu būvniecībā, pievērsiet uzmanību jaunajam Slurm kursam. "CI/CD uz Gitlab CI piemēra". Tagad tas ir pieejams par iepriekšēja pasūtījuma cenu.

Ceļa punkts GitLab CI/CD

Lai to visu sakārtotu GitLab CI/CD, apskatīsim, kas mums nepieciešams mūsu failā .gitlab-ci.yml:

  • Pirmkārt, jums ir nepieciešams bāzes attēls, kas tajā darbojas. Waypoint darbojas ar jebkuru Linux izplatīšanu, tam ir nepieciešams tikai Docker, lai mēs varētu palaist ar vispārēju Docker attēlu.
  • Pēc tam šajā attēlā jāinstalē Waypoint. Nākotnē mēs varam savākt meta veidot attēlu un konteinerizējiet šo procesu sev.
  • Visbeidzot mēs izpildīsim Waypoint komandas

Iepriekš ir viss, kas mūsu konveijeram būs nepieciešams, lai palaistu izvietošanai nepieciešamos skriptus, taču, lai tos izvietotu AWS, mums ir nepieciešama vēl viena lieta: mums ir jāpiesakās savā AWS kontā. Ceļa punkta aprakstā ir plāni par autentifikāciju un autorizāciju. HashiCorp šonedēļ arī izlaida iespaidīgu projektu Robeža. Bet pagaidām mēs varam tikai veikt un veikt autentifikāciju un autorizāciju paši.

Ir vairākas iespējas GitLab CICD autentifikācijai AWS. Pirmā iespēja ir izmantot iebūvēto HashiCorp Vault. Tas ir labi, ja jūsu komanda jau izmanto Vault akreditācijas datu pārvaldībai. Vēl viena metode, kas darbojas, ja jūsu komanda pārvalda autorizāciju, izmantojot AWS IAM, ir pārbaudīt, vai piegādes uzdevumi tiek aktivizēti, izmantojot GitLab skrējējsA, kas ir pilnvarota sākt izvietošanu, izmantojot IAM. Bet, ja vēlaties vienkārši iepazīties ar Waypoint un vēlaties to izdarīt ātri, pēdējā iespēja ir pievienot savu AWS API un slepenās atslēgas GitLab CI/CD vides mainīgie AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Visu to apvienojot

Kad esam izdomājuši autentifikāciju, varam sākt! Mūsu fināls .gitlab-ci.yml izskatās šādi:

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

Redzi, mēs sākam ar attēlu docker:latest un iestatiet dažus Waypoint pieprasītos vides mainīgos. Nodaļā script mēs lejupielādējam jaunāko Waypoint izpildāmo failu un ievietojam to /usr/local/bin. Tā kā mūsu skrējējs jau ir autorizēts AWS, tad mēs vienkārši skrienam waypoint init, build, deploy и release.

Būvēšanas uzdevuma izvade parādīs galapunktu, kurā mēs palaidām lietojumprogrammu:

Kā izmantot HashiCorp Waypoint, lai sadarbotos ar GitLab CI/CD

Ceļa punkts viens no daudzi HashiCorp risinājumi, kas lieliski darbojas ar GitLab. Piemēram, papildus lietojumprogrammas piegādei mēs varam koordinēt pamatā esošo infrastruktūru Terraforma GitLab. Lai standartizētu SDLC drošību, mēs varam arī ieviest GitLab ar Vault noslēpumu un marķieru pārvaldībai CI/CD konveijeros, nodrošinot pilnīgu risinājumu izstrādātājiem un administratoriem, kuri paļaujas uz slepeno pārvaldību izstrādei, testēšanai un ražošanas lietošanai.

HashiCorp un GitLab izstrādātie kopīgie risinājumi palīdz uzņēmumiem atrast labāko veidu lietojumprogrammu izstrādei, nodrošinot konsekventu piegādes ķēdes un infrastruktūras pārvaldību. Waypoint ir spēris vēl vienu soli pareizajā virzienā, un mēs ceram uz turpmāku projekta attīstību. Varat uzzināt vairāk par Waypoint šeitarī ir vērts izpētīt dokumentācija и attīstības plāns projektu. Mēs esam pievienojuši savas zināšanas GitLab CICD dokumentācija. Ja vēlaties to izmēģināt pats, varat skatīt pilnu darba piemēru vietnē šo repozitoriju.

Jūs varat izprast CI / CD principus, apgūt visas darba ar Gitlab CI smalkumus un sākt piemērot labāko praksi, aizpildot video kursu "CI/CD uz Gitlab CI piemēra"... Pievienojies mums!

Avots: www.habr.com

Pievieno komentāru