Kuidas kasutada HashiCorpi Waypointi koostööks GitLabi CI/CD-ga

Kuidas kasutada HashiCorpi Waypointi koostööks GitLabi CI/CD-ga

HashiCorp esitles uut projekti Waypoint jÀrgnevaga HashiCorp Digital. See kasutab HCL-pÔhist faili rakenduste koostamiseks, tarnimiseks ja vÀljalaskmiseks erinevatele pilveplatvormidele, sealhulgas Kubernetes, AWS ja Google Cloud Run. Waypointit vÔib vÔrrelda Terraformi ja Vagrandi kombinatsiooniga, mis kirjeldab teie rakenduste koostamise, tarnimise ja vÀljalaskeprotsessi.

Oma avatuse sĂ€ilitades on HashiCorp vĂ€lja andnud avatud lĂ€htekoodiga Waypointi, millele on lisatud mitmeid nĂ€idiseid. Orkestratsiooni tase jÀÀb teie valida, kuna Waypoint on vĂ€ljastatud kĂ€ivitatava failina, mida saate kĂ€ivitada otse oma sĂŒlearvutis vĂ”i valitud CI/CD orkestratsiooni tööriistast. Rakenduste juurutamise eesmĂ€rk on samuti teie valida, kuna Waypoint toetab Kubernetesit, Dockerit, Google Cloud Runi, AWS ECS-i ja teisi.

PÀrast fantastiliste dokumentatsiooni ja uhkete nÀidiste rakendustest, mille on pakkunud HashiCorp, otsustasime lÀhemalt vaadata Waypointi orkestratsiooni GitLabi CI/CD abil. Selleks vÔtame kasutusele lihtsa Node.js rakenduse, mida kÀitatakse AWS ECS-is, ja toome selle nÀidispoest.

PĂ€rast reposti kloonimist vaatame rakenduse struktuuri, mis kuvab ĂŒhte lehte:

Kuidas kasutada HashiCorpi Waypointi koostööks GitLabi CI/CD-ga

Kuidas te ilmselt mĂ€rkisite, selles projektis puudub Dockerfile. Need ei ole nĂ€ites lisatud, kuna nad ei ole meile ĂŒldiselt vajalikud, sest Waypoint hoolitseb nende eest meie eest. Vaatame lĂ€hemalt faili waypoint.hcl, et mĂ”ista, mida see teeb:

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

Kogumise etapis kasutab Waypoint Cloud Native Buildpacks (CNB), et mÀÀrata projekti programmeerimiskeel ja luua Docker image ilma Dockerfile'i kasutamata. PĂ”himĂ”tteliselt on see sama tehnoloogia, mida GitLab kasutab Auto DevOps Auto Build'i sammul. Tore on nĂ€ha, et CNB CNCF poolt on tööstuses ĂŒha enam levinud.

Kuni pilt on kogutud, laadib Waypoint selle automaatselt meie AWS ECR registrisse, et see oleks valmis tarnimiseks. Kogumise lÔppedes kasutatakse tarnimise sammus AWS ECS tÀiendust meie rakenduse juurutamiseks meie AWS kontole.

Minu sĂŒlearvutist — kĂ”ik on lihtne. Panen paika Waypointi, mis on juba minu AWS kontoga autentitud, ja see „lihtsalt töötab“. Aga mis juhtub, kui ma tahan minna kaugemale oma sĂŒlearvutist? VĂ”i Ă€kki tahan automatiseerida seda juurutamist osana oma CI/CD kogumisst, kus kĂ€ivitatakse mu praegused integratsiooni testid, turvatestid ja muud? Just siin tulebki mĂ€ngu GitLab CI/CD!

N.B. Kui plaanite alles CI/CD juurutamist vĂ”i soovite alustada parimate praktikate rakendamist torujuhtmete loomisel, vaadake SlĂ«rma uut kursust. „CI/CD GitLab CI nĂ€itel“. See on nĂŒĂŒd saadaval ettetellimise hinnaga.

Waypoint GitLab CI/CD-s

Kogu selle orkestreerimiseks GitLab CI/CD-s vaatame, mida me vajame meie failis. .gitlab-ci.yml:

  • Esmalt on vajalik pĂ”hikuju, mille sees seda kĂ€ivitada. Waypoint töötab igas Linuxi jaotuses, vajab vaid Dockerit, nii et saame alustada generic Docker pildist.
  • SeejĂ€rel tuleb Waypoint see pilt installida. Tulevikus saame luua meta build pilti ja konteineriseerida selle protsessi enda jaoks.
  • LĂ”puks kĂ€ivitame Waypointi kĂ€sud.

Ülaltoodud on kĂ”ik, mida meie sĂŒsteem vajab rakenduste skriptide kĂ€ivitamiseks, kuid AWS-is kĂ€ivitamiseks vajame veel ĂŒhte asja: peame enda AWS-i kontole sisse logima. Waypointi dokumentatsiooni pĂ”hjal on olemas plaanid autentimise ja autoriseerimise kohta. HashiCorp avaldas sel nĂ€dalal ka muljetavaldava projekti Boundary. Kuid praegu saame lihtsalt ise autentimise ja autoriseerimise kĂ€sitleda.

AWS-i autentimiseks GitLab CICD-s on mitmeid vĂ”imalusi. Esimene valik on sisseehitatud HashiCorp Vault. See sobib, kui teie meeskond juba kasutab Vaulti volituste haldamiseks. Teine viis, mis sobib, kui teie tiim haldab autoriseerimist AWS IAM-i kaudu — veenduge, et tarnetooted kĂ€ivitatakse. GitLabi jooksja, mis on volitatud kĂ€ivitama IAM-i kaudu rakendust. Kuid kui soovite lihtsalt Waypointiga tutvuda ja seda kiiremini teha, on viimane variant — lisada oma AWS API ja Secret vĂ”tmed GitLab CI/CD keskkonnaparameetritesse AWS_ACCESS_KEY_ID ja AWS_SECRET_ACCESS_KEY.

Koondame kÔik kokku

NĂŒĂŒd, kui oleme autentimisega toime tulnud, saame alustada! Meie lĂ”plik .gitlab-ci.yml nĂ€eb vĂ€lja nii:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # MÀÀrake keskkonnamuutujad, nt `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

NÀete, et alustame pildist docker:latest ja mÀÀrame mÔned keskkonnamuutujad, mis on Waypointi jaoks vajalikud. Jaotises script me laadime alla Waypointi viimase versiooni ja paigaldame selle /usr/local/bin. Kuna meie runner on juba AWS-is autoriseeritud, kÀivitame lihtsalt waypoint init, build, deploy ja release.

Kogumise ĂŒlesande vĂ€ljund nĂ€itab meile lĂ”pp-punkti, kuhu rakenduse vĂ€lja panime:

Kuidas kasutada HashiCorpi Waypointi koostööks GitLabi CI/CD-ga

Waypoint on ĂŒks paljusid HashiCorpi lahendusi, mis töötavad hĂ€sti GitLabiga. NĂ€iteks rakenduse tarnimise kĂ”rval saame orkestreerida aluse infrastruktuuri Terraformi abil GitLabis. SDLC turva standardiseerimiseks saame samuti integreerida GitLabi Vaultiga salajasusteemide ja tokenite haldamiseks CI/CD torudes, pakkudes terviklikku lahendust arendajatele ja administraatoritele, kes sĂ”ltuvad saladuste haldamisest arendamisel, testimisel ja ka tööstuslikul kasutamisel.

HashiCorpi ja GitLabi koostöös loodud lahendused aitavad ettevĂ”tetel leida parima rakenduste arendamise viisi, tagades sujuva tarnete haldamise ja infrastruktuuri. Waypoint tegi veel ĂŒhe sammu Ă”iges suunas ning ootame innukalt projekti edasist arengut. Lisainformatsiooni saamiseks Waypointi kohta siit, tasub uurida dokumentatsiooni ja arenduskava projekti. Omandasime meie teadmised GitLab CICD dokumentatsioonis. Kui soovite kĂ”ike ise praktikas proovida, siis saate tĂ€ispika töötava nĂ€ite selles hoidlas.

CI/CD pĂ”himĂ”tete mĂ”istmiseks, GitLab CI töödetailide omandamiseks ja parimate praktikate rakendamiseks on vĂ”imalik osaleda videokursusel „CI/CD GitLab CI nĂ€itel“. Liituge!

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster