Kaip naudoti HashiCorp Waypoint bendradarbiaujant su GitLab CI / CD

Kaip naudoti HashiCorp Waypoint bendradarbiaujant su GitLab CI / CD

HashiCorp parodė naują projektą Kelio taškas apie HashiCorp skaitmeninis. Jis naudoja HCL pagrįstą failą, kad aprašytų programų kūrimą, pristatymą ir išleidimą įvairioms debesų platformoms, pradedant Kubernetes ir baigiant AWS ir Google Cloud Run. Pagalvokite apie „Waypoint“ kaip „Terraform“ ir „Vagrant“ kartu aprašytus programų kūrimo, pristatymo ir išleidimo procesą.

Tiesa, „HashiCorp“ išleido „Waypoint“ kaip atvirąjį kodą ir pateikia daugybę pavyzdžių. Orkestratoriaus lygis priklauso nuo jūsų, „Waypoint“ yra kaip vykdomasis failas, kurį galite paleisti tiesiai savo nešiojamajame kompiuteryje arba naudodami pasirinktą CI / CD orkestravimo įrankį. Programos diegimo tikslas taip pat priklauso nuo jūsų, nes „Waypoint“ palaiko „Kubernetes“, „Docker“, „Google Cloud Run“, AWS ECS ir kt.

Perskaičius nuostabų dokumentacija ir pats prašmatniausias pavyzdžiai „HashiCorp“ teikiamas programas, nusprendėme atidžiau pažvelgti į „Waypoint“ orkestravimą naudojant „GitLab CI/CD“. Norėdami tai padaryti, iš pavyzdžių saugyklos paimsime paprastą Node.js programą, veikiančią AWS ECS.

Klonavę saugyklą, pažvelkime į programos, kuri rodo vieną puslapį, struktūrą:

Kaip naudoti HashiCorp Waypoint bendradarbiaujant su GitLab CI / CD

Kaip galbūt pastebėjote, šiame projekte nėra „Dockerfile“. Pavyzdyje jie nėra pridėti, nes mums jų tikrai nereikia, nes Waypoint jais pasirūpins už mus. Pažvelkime į failą atidžiau waypoint.hclkad suprastum, ką jis darys:

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

Kūrimo etape „Waypoint“ naudoja „Cloud Native Buildpacks“ (CNB), kad nustatytumėte projekto programavimo kalbą ir sukurtumėte „Docker“ vaizdą nenaudodami „Dockerfile“. Iš esmės tai yra ta pati technologija, kurią iš dalies naudoja „GitLab“. Auto DevOps automatinio kūrimo žingsnyje. Puiku matyti, kad CNCF CNB vis labiau populiarėja tarp pramonės vartotojų.

Kai vaizdas bus sukurtas, „Waypoint“ automatiškai įkels jį į mūsų AWS ECR registrą, kad būtų paruoštas siuntimui. Surinkimo pabaigoje naudojamas pristatymo etapas AWS ECS priedas Norėdami įdiegti programą į AWS paskyrą.

Iš mano nešiojamojo kompiuterio tai lengva. Įdėjau „Waypoint“, kuris jau patvirtintas mano AWS paskyroje, ir jis „tiesiog veikia“. Bet kas atsitiks, jei noriu peržengti nešiojamąjį kompiuterį? O gal noriu automatizuoti šį diegimą kaip dalį savo bendro CI / CD dujotiekio, kuriame vykdomi dabartiniai integravimo testai, saugos testai ir kiti? Tai yra istorijos dalis, kurioje pasirodo GitLab CI / CD!

NB Jei tik planuojate įdiegti CI / CD arba norite pradėti taikyti geriausią vamzdynų tiesimo praktiką, atkreipkite dėmesį į naująjį Slurm kursą. "CI / CD Gitlab CI pavyzdžiu". Dabar jį galima įsigyti už išankstinio užsakymo kainą.

Kelio taškas GitLab CI / CD

Norėdami visa tai suorganizuoti GitLab CI / CD, pažiūrėkime, ko mums reikia mūsų faile .gitlab-ci.yml:

  • Visų pirma, norint paleisti jame, reikia pagrindinio vaizdo. „Waypoint“ veikia bet kuriame „Linux“ paskirstyme, jam reikia tik „Docker“, todėl galime paleisti su bendru „Docker“ vaizdu.
  • Tada šiame paveikslėlyje turite įdiegti „Waypoint“. Ateityje galime rinkti meta build vaizdas ir talpinkite šį procesą sau.
  • Galiausiai vykdysime „Waypoint“ komandas

Aukščiau yra viskas, ko reikės mūsų konvejeriui, kad paleistumėte scenarijus, reikalingus diegti, tačiau norint įdiegti AWS, mums reikia dar vieno dalyko: turime prisijungti prie savo AWS paskyros. Kelio taško aprašyme turėti planų apie autentifikavimą ir autorizavimą. „HashiCorp“ šią savaitę taip pat išleido įspūdingą projektą Riba. Tačiau kol kas galime tiesiog imtis ir patys tvarkyti autentifikavimą ir autorizavimą.

Yra keletas „GitLab“ CICD autentifikavimo AWS parinkčių. Pirmasis variantas yra naudoti įmontuotą „HashiCorp Vault“. Puiku, jei jūsų komanda kredencialams tvarkyti jau naudoja Vault. Kitas būdas, kuris veikia, jei jūsų komanda valdo prieigos teisę naudodama AWS IAM, yra patikrinti, ar pristatymo užduotys suaktyvinamos naudojant GitLab bėgikasA, kuriai suteikta teisė pradėti diegimą per IAM. Bet jei norite tiesiog susipažinti su „Waypoint“ ir norite tai padaryti greitai, paskutinė galimybė yra pridėti AWS API ir slaptuosius raktus. GitLab CI/CD aplinkos kintamieji AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Viskas kartu

Kai išsiaiškinsime autentifikavimą, galime pradėti! Mūsų finalas .gitlab-ci.yml atrodo taip:

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

Matote, mes pradedame nuo vaizdo docker:latest ir nustatyti kelis aplinkos kintamuosius, kurių reikalauja „Waypoint“. Skyriuje script atsisiunčiame naujausią „Waypoint“ vykdomąjį failą ir įdedame /usr/local/bin. Kadangi mūsų bėgikas jau yra įgaliotas AWS, mes tiesiog bėgame waypoint init, build, deploy и release.

Kūrimo užduoties išvestis parodys galutinį tašką, kuriame įdiegėme programą:

Kaip naudoti HashiCorp Waypoint bendradarbiaujant su GitLab CI / CD

Kelio taškas vienas iš daugybė HashiCorp sprendimų, kurios puikiai veikia su GitLab. Pavyzdžiui, mes galime ne tik pateikti programą, bet ir suderinti pagrindinę infrastruktūrą Terraforma „GitLab“.. Norėdami standartizuoti SDLC saugumą, taip pat galime įdiegti „GitLab“ su „Vault“. paslapčių ir žetonų valdymui CI / CD vamzdynuose, teikiant išsamų sprendimą kūrėjams ir administratoriams, kurie kūrimo, testavimo ir gamybos tikslais naudojasi slaptu valdymu.

Bendri HashiCorp ir GitLab sukurti sprendimai padeda įmonėms rasti geriausią būdą kurti programas, užtikrinant nuoseklų tiekimo grandinės ir infrastruktūros valdymą. „Waypoint“ žengė dar vieną žingsnį teisinga linkme ir tikimės tolesnės projekto plėtros. Galite sužinoti daugiau apie „Waypoint“. čiataip pat verta patyrinėti dokumentacija и vystymo planas projektą. Mes papildėme savo žinias GitLab CICD dokumentacija. Jei norite tai išbandyti patys, galite peržiūrėti visą darbo pavyzdį adresu šią saugyklą.

Galite suprasti CI / CD principus, įsisavinti visas darbo su Gitlab CI subtilybes ir pradėti taikyti geriausią praktiką baigę vaizdo kursą "CI / CD Gitlab CI pavyzdžiu"... Prisijunk prie mūsų!

Šaltinis: www.habr.com

Добавить комментарий