Wéi benotzt Dir HashiCorp Waypoint fir mat GitLab CI / CD ze kollaboréieren

Wéi benotzt Dir HashiCorp Waypoint fir mat GitLab CI / CD ze kollaboréieren

HashiCorp huet en neie Projet gewisen waypoint op D'Kapitaliséierung vu HashiCorp Digital. Et benotzt eng HCL-baséiert Datei fir de Bau, d'Liwwerung an d'Verëffentlechung vun Uwendungen fir eng Rei vu Cloud Plattformen ze beschreiwen, rangéiert vu Kubernetes bis AWS bis Google Cloud Run. Dir kënnt un Waypoint denken als Terraform a Vagrant kombinéiert fir de Prozess vum Bau, Versand a Verëffentlechung vun Ären Uwendungen ze beschreiwen.

True to Form, HashiCorp huet Waypoint als Open Source verëffentlecht a kënnt mat ville Beispiller. D'Orchestratorschicht ass un Iech, Waypoint kënnt als ausführbar deen Dir direkt op Ärem Laptop oder vun Ärem CI / CD Orchestratiounsinstrument vun Ärem Choix lafe kënnt. D'Zil fir Är Uwendungen z'installéieren ass och un Iech, well Waypoint ënnerstëtzt Kubernetes, Docker, Google Cloud Run, AWS ECS, a méi.

No der genial liesen Dokumentatioun an déi luxuriéisst Beispiller Uwendungen geliwwert vum HashiCorp, hu mir décidéiert fir Waypoint Orchestratioun méi no ze kucken mat GitLab CI / CD. Fir dëst ze maachen, huelen mir eng einfach Node.js Applikatioun op AWS ECS aus dem Beispiller Repository.

Nodeems Dir de Repository gekloont hutt, kucke mer d'Struktur vun der Applikatioun déi eng Säit weist:

Wéi benotzt Dir HashiCorp Waypoint fir mat GitLab CI / CD ze kollaboréieren

Wéi Dir vläicht gemierkt hutt, huet dëse Projet keng Dockerfile. Si ginn am Beispill net bäigefüügt, well mir se am Prinzip net brauchen, well Waypoint sech fir eis ëm si këmmert. Loosst eis d'Datei méi genau kucken waypoint.hclfir ze verstoen wat et wäert maachen:

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

Wärend der Bauphase benotzt Waypoint Cloud Native Buildpacks (CNB) fir d'Programméierungssprooch vum Projet ze bestëmmen an en Docker-Bild ze kreéieren ouni eng Dockerfile ze benotzen. Am Prinzip ass dëst déiselwecht Technologie déi GitLab deelweis benotzt Auto DevOps am Auto Build Schrëtt. Et ass gutt ze gesinn datt CNCF's CNB méi Adoptioun ënner Industriebenotzer kritt.

Wann d'Bild gebaut ass, lued Waypoint et automatesch op eis AWS ECR Registry erop sou datt et prett ass fir d'Liwwerung. Wann de Bau fäerdeg ass, benotzt d'Liwwerschrëtt AWS ECS add-on fir eis Applikatioun op eisen AWS Kont z'installéieren.

Vu mengem Laptop - alles ass einfach. Ech setzen e Waypoint dee scho a mengem AWS Kont authentifizéiert ass an et "wierkt just". Awer wat geschitt wann ech iwwer mäi Laptop wëll goen? Oder wëll ech op eemol dës Détachement automatiséieren als Deel vu menger gesamter CI/CD Pipeline, wou meng lafend Integratiounstester, Sécherheetstester an anerer lafen? Dëst ass den Deel vun der Geschicht wou GitLab CI / CD kënnt!

NB Wann Dir just plangt CI / CD ëmzesetzen oder wëllt ufänken bescht Praktiken fir Pipelines ze bauen, oppassen op dem Slurm säin neie Cours "CI/CD benotzt Gitlab CI als Beispill". Et ass elo um Pre-Order Präis verfügbar.

Waypoint an GitLab CI/CD

Fir dat alles an GitLab CI/CD ze orchestréieren, kucke mer wat mir an eisem Fichier brauchen .gitlab-ci.yml:

  • Als éischt braucht Dir e Basisbild fir dobannen ze lafen. Waypoint funktionnéiert op all Linux Verdeelung, et brauch nëmmen Docker, also kënne mir mat engem generesche Docker Bild lafen.
  • Als nächst musst Dir Waypoint an dësem Bild installéieren. An Zukunft kënne mir sammelen Bild Meta bauen a containerize dëse Prozess fir Iech selwer.
  • Endlech lafe mir d'Waypoint Kommandoen aus

Dat hei uewen beschreift alles wat eis Pipeline brauch fir d'Skripten auszeféieren déi néideg sinn fir d'Deployment ofzeschléissen, awer fir op AWS z'installéieren brauche mir nach eng Saach: mir mussen op eisen AWS Kont ageloggt sinn. An der Waypoint Beschreiwung et gi Pläng iwwer Authentifikatioun an Autorisatioun. HashiCorp huet och dës Woch en beandrockende Projet verëffentlecht Grenze kennt. Awer fir de Moment kënne mir just d'Authentifikatioun an d'Autorisatioun selwer handhaben.

Et gi verschidde Méiglechkeeten fir GitLab CICD Authentifikatioun an AWS. Déi éischt Optioun ass den agebaute benotzen HashiCorp Vault. Dëst ass super wann Äert Team scho Vault fir Umeldungsverwaltung benotzt. Eng aner Optioun déi funktionnéiert wann Äert Team d'Autorisatioun mat AWS IAM verwalt ass fir ze kontrolléieren ob d'Liwweraufgaben ausgeléist ginn duerch GitLab Runner, autoriséiert fir den Détachement duerch IAM auszeféieren. Awer wann Dir just mam Waypoint vertraut wëllt a wëllt et séier maachen, da gëtt et eng lescht Optioun - füügt Är AWS API a Secret Keys un GitLab CI / CD Ëmfeld Variablen AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

All zesummen maachen

Wann mir d'Authentifikatioun verstinn, kënne mir ufänken! Eis Finall .gitlab-ci.yml gesäit aus wéi:

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

Dir gesitt datt mir mat engem Bild ufänken docker:latest a setzt verschidde Ëmweltvariablen, déi vum Waypoint erfuerderlech sinn. Am Kapitel script mir lueden déi lescht Versioun vum Waypoint ausführbar erof an installéiere se an /usr/local/bin. Well eise Leefer schonn an AWS autoriséiert ass, lafe mir als nächst einfach waypoint init, build, deploy и release.

D'Ausgab vun der Build Task weist eis den Endpunkt wou mir d'Applikatioun ausgerullt hunn:

Wéi benotzt Dir HashiCorp Waypoint fir mat GitLab CI / CD ze kollaboréieren

Waypoint eent vun vill HashiCorp Léisungen, schafft super mat GitLab. Zum Beispill, zousätzlech fir d'Applikatioun ze liwweren, kënne mir déi ënnerierdesch Infrastruktur orchestréieren benotzen Terraform op GitLab. Fir SDLC Sécherheet ze standardiséieren, kënne mir och implementéieren GitLab mat Vault fir Geheimnisser an Tokens an CI / CD Pipelines ze managen, eng holistesch Léisung fir Entwéckler an Administrateuren ubidden, déi op Geheimnissermanagement fir Entwécklung, Testen a Produktiounsgebrauch vertrauen.

Déi gemeinsam Léisungen entwéckelt vu HashiCorp a GitLab hëllefen Firmen e bessere Wee ze fannen fir Uwendungen z'entwéckelen andeems se konsequent Gestioun vu Liwwerleitungen an Infrastruktur ubidden. Waypoint hunn e weidere Schrëtt an déi richteg Richtung geholl a mir freeën eis op déi weider Entwécklung vum Projet. Dir kënnt méi iwwer Waypoint gewuer ginn hei, och derwäert ze entdecken Dokumentatioun и Entwécklungsplang Projet. Mir hunn d'Wëssen bäigefüügt, déi mir gewonnen hunn GitLab CICD Dokumentatioun. Wann Dir alles selwer wëllt probéieren, kënnt Dir e komplett Aarbechtsbeispill huelen dëse Repository.

Dir kënnt d'Prinzipien vum CI / CD verstoen, all d'Intricacies vun der Aarbecht mat Gitlab CI beherrschen an unzefänken bescht Praktiken unzefänken andeems Dir e Videocours maacht "CI/CD benotzt Gitlab CI als Beispill". Komm mat eis!

Source: will.com

Setzt e Commentaire