ProHoster > Blog > uprava > Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD
Kako koristiti HashiCorp Waypoint za suradnju s GitLab CI/CD
HashiCorp je pokazao novi projekt Točka rute na HashiCorp Digital. Koristi datoteku temeljenu na HCL-u za opisivanje izrade, isporuke i izdavanja aplikacija za različite platforme u oblaku, od Kubernetesa do AWS-a i Google Cloud Run-a. Zamislite Waypoint kao Terraform i Vagrant spojene kako biste opisali proces izgradnje, slanja i izdavanja vaših aplikacija.
Istini za volju, HashiCorp je objavio Waypoint kao open source i dolazi s puno primjera. Razina orkestratora ovisi o vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti izravno na prijenosnom računalu ili pomoću alata za orkestraciju CI/CD-a po izboru. Cilj implementacije aplikacije također ovisi o vama, budući da Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i još mnogo toga.
Nakon što sam pročitao super dokumentacija i najotmjeniji primjeri aplikacijama koje pruža HashiCorp, odlučili smo pobliže pogledati orkestraciju Waypointa s GitLab CI/CD. Da bismo to učinili, uzet ćemo jednostavnu Node.js aplikaciju koja radi na AWS ECS iz repozitorija uzoraka.
Nakon kloniranja repozitorija, pogledajmo strukturu aplikacije koja prikazuje jednu stranicu:
Kao što ste možda primijetili, u ovom projektu nema Dockerfilea. Oni nisu dodani u primjeru jer nam zapravo i ne trebaju, jer će se Waypoint pobrinuti za njih umjesto nas. Pogledajmo pobliže datoteku waypoint.hclda shvatite što će učiniti:
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"
}
}
}
Tijekom faze izgradnje, Waypoint koristi Cloud Native Buildpacks (HNB) za određivanje programskog jezika projekta i stvaranje Docker slike bez korištenja Dockerfilea. U principu, radi se o istoj tehnologiji koju dijelom koristi GitLab Auto DevOps u koraku automatske izrade. Sjajno je vidjeti da se CNCF-ov CNB sve više prihvaća među korisnicima u industriji.
Nakon što je slika izgrađena, Waypoint će je automatski učitati u naš AWS ECR registar tako da bude spremna za slanje. Na kraju montaže koristi se korak isporuke AWS ECS dodatak za implementaciju naše aplikacije na naš AWS račun.
S mog laptopa to je lako. Stavio sam Waypoint koji je već autentificiran na mom AWS računu i "jednostavno radi". Ali što se događa ako želim ići dalje od svog prijenosnog računala? Ili možda želim automatizirati ovu implementaciju kao dio svog ukupnog CI/CD cjevovoda gdje se izvode moji trenutni integracijski testovi, sigurnosni testovi i drugi? Ovo je dio priče u koji dolazi GitLab CI/CD!
NB Ako tek planirate implementirati CI / CD ili želite početi primjenjivati najbolje prakse za izgradnju cjevovoda, obratite pozornost na novi tečaj Slurm. "CI/CD na primjeru Gitlab CI". Sada je dostupan po cijeni u pretprodaji.
Putna točka u GitLab CI/CD
Da bismo sve ovo orkestrirali u GitLab CI/CD-u, pogledajmo što nam treba u našoj datoteci .gitlab-ci.yml:
Prije svega, potrebna vam je osnovna slika za pokretanje unutar njega. Waypoint radi na bilo kojoj distribuciji Linuxa, treba mu samo Docker, tako da možemo raditi s generičkom slikom Dockera.
Zatim morate instalirati Waypoint u ovu sliku. U budućnosti bismo mogli skupljati meta build image i spremite ovaj proces za sebe.
Na kraju ćemo pokrenuti naredbe Waypoint
Iznad je sve što će naš cjevovod trebati za pokretanje skripti potrebnih za implementaciju, ali za implementaciju na AWS potrebna nam je još jedna stvar: moramo se prijaviti na naš AWS račun. U opisu međutočke imati planove o autentifikaciji i autorizaciji. HashiCorp je također ovaj tjedan objavio impresivan projekt Granica. Ali za sada, možemo samo preuzeti i sami upravljati autentifikacijom i autorizacijom.
Postoji nekoliko opcija za GitLab CICD autentifikaciju na AWS-u. Prva opcija je korištenje ugrađenog HashiCorp trezor. U redu je ako vaš tim već koristi Vault za upravljanje vjerodajnicama. Druga metoda koja funkcionira ako vaš tim upravlja autorizacijom pomoću AWS IAM-a je provjera da li se zadaci isporuke pokreću putem GitLab trkačA koji je ovlašten pokrenuti implementaciju putem IAM-a. Ali ako se samo želite upoznati s Waypointom i želite to učiniti brzo, posljednja opcija je dodati svoj AWS API i tajne ključeve u GitLab CI/CD varijable okruženjaAWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.
Sve skupa
Kad smo shvatili autentifikaciju, možemo početi! Naše finale .gitlab-ci.yml izgleda ovako:
Vidite da počinjemo sa slikom docker:latest i postavite nekoliko varijabli okruženja koje zahtijeva Waypoint. U poglavlju script preuzimamo najnoviju izvršnu datoteku Waypoint i stavljamo je /usr/local/bin. Budući da je naš trkač već autoriziran u AWS-u, jednostavno trčimo waypoint init, build, deploy и release.
Izlaz zadatka izgradnje pokazat će nam krajnju točku na kojoj smo pokrenuli aplikaciju:
Putna točka jedna od brojna HashiCorp rješenja, koji odlično rade s GitLabom. Na primjer, osim isporuke aplikacije, možemo orkestrirati temeljnu infrastrukturu s Terraform u GitLabu. Za standardizaciju SDLC sigurnosti, također možemo implementirati GitLab s trezorom za upravljanje tajnama i tokenima u CI/CD cjevovodima, pružajući cjelovito rješenje za programere i administratore koji se oslanjaju na upravljanje tajnama za razvoj, testiranje i proizvodnu upotrebu.
Zajednička rješenja koja su razvili HashiCorp i GitLab pomažu tvrtkama da pronađu najbolji način za razvoj aplikacija osiguravajući dosljedno upravljanje opskrbnim lancem i infrastrukturom. Waypoint je napravio još jedan korak u pravom smjeru i veselimo se daljnjem razvoju projekta. Možete saznati više o Waypointu здесьtakođer vrijedno istraživanja dokumentacija и plan razvoja projekt. Dodali smo svoje znanje GitLab CICD dokumentacija. Ako želite sami isprobati, možete pogledati kompletan radni primjer na ovo spremište.
Možete razumjeti principe CI / CD, savladati sve suptilnosti rada s Gitlab CI i početi primjenjivati najbolje prakse dovršetkom video tečaja "CI/CD na primjeru Gitlab CI"... Pridruži nam se!