
HashiCorp parodė naują projektą apie . 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ų ir pats prašmatniausias „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 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“ (), 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“. 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 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ą. . 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, jums reikia bazinio atvaizdo, kuriame veiktų. „Waypoint“ veikia bet kuriame distribuciniame serveryje. Linux, jam reikia tik „Docker“, todėl galime paleisti iš bendro „Docker“ atvaizdo.
- Tada šiame paveikslėlyje turite įdiegti „Waypoint“. Ateityje galime rinkti 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 apie autentifikavimą ir autorizavimą. „HashiCorp“ šią savaitę taip pat išleido įspūdingą projektą . 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ą . 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 A, 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. 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 releaseMatote, 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ą:

Kelio taškas vienas iš , kurios puikiai veikia su GitLab. Pavyzdžiui, mes galime ne tik pateikti programą, bet ir suderinti pagrindinę infrastruktūrą . Norėdami standartizuoti SDLC saugumą, taip pat galime įdiegti 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“. taip pat verta patyrinėti и projektą. Mes papildėme savo žinias . Jei norite tai išbandyti patys, galite peržiūrėti visą darbo pavyzdį adresu .
Galite suprasti CI / CD principus, įsisavinti visas darbo su Gitlab CI subtilybes ir pradėti taikyti geriausią praktiką baigę vaizdo kursą ... Prisijunk prie mūsų!
Šaltinis: www.habr.com
