A HashiCorp Waypoint használata a GitLab CI/CD-vel való együttműködéshez

A HashiCorp Waypoint használata a GitLab CI/CD-vel való együttműködéshez

A HashiCorp egy új projektet mutatott be Waypoint on HashiCorp Digital. HCL-alapú fájl segítségével írja le az alkalmazások építését, szállítását és kiadását különféle felhőplatformokhoz, a Kubernetestől az AWS-ig és a Google Cloud Run-ig. Tekintse a Waypointot úgy, mint a Terraformot és a Vagrant-et, amely az alkalmazások felépítésének, szállításának és kiadásának folyamatát írja le.

A HashiCorp szokásához híven kiadta a Waypointot nyílt forráskódúként, és rengeteg példát tartalmaz. A hangszerelő szintje Önön múlik, a Waypoint végrehajtható fájlként érkezik, amelyet közvetlenül a laptopján vagy a választott CI/CD hangszerelési eszközéről futtathat. Az alkalmazástelepítési cél is rajtad múlik, mivel a Waypoint támogatja a Kubernetes, a Docker, a Google Cloud Run, az AWS ECS stb.

Miután elolvasta a fantasztikus dokumentáció és a legmenőbb példák A HashiCorp által biztosított alkalmazásokhoz úgy döntöttünk, hogy közelebbről megvizsgáljuk a Waypoint hangszerelését GitLab CI/CD-vel. Ehhez egy AWS ECS-en futó egyszerű Node.js alkalmazást veszünk a mintatárból.

A tár klónozása után nézzük meg az egy oldalt megjelenítő alkalmazás szerkezetét:

A HashiCorp Waypoint használata a GitLab CI/CD-vel való együttműködéshez

Amint azt észrevette, ebben a projektben nincs Dockerfile. A példában nincsenek hozzáadva, mert nincs is rájuk igazán szükségünk, mert a Waypoint gondoskodik róluk helyettünk. Nézzük meg közelebbről a fájlt waypoint.hclhogy megértsük, mit fog tenni:

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

Az építési szakaszban a Waypoint Cloud Native Buildpacket (CNB) a projekt programozási nyelvének meghatározásához és Docker-fájl létrehozásához Dockerfile használata nélkül. Elvileg ez ugyanaz a technológia, amelyet részben a GitLab használ Auto DevOps az Auto Build lépésben. Nagyszerű látni, hogy a CNCF CNB-je egyre inkább elterjed az iparági felhasználók körében.

Amint a kép elkészült, a Waypoint automatikusan feltölti azt az AWS ECR nyilvántartásunkba, hogy készen álljon a szállításra. Az összeszerelés végén a szállítási lépés használja AWS ECS kiegészítő hogy telepítsük alkalmazásunkat AWS-fiókunkba.

A laptopomról egyszerű. Beraktam a Waypointot, ami már hitelesítve van az AWS-fiókomban, és "csak működik". De mi történik, ha túl akarok lépni a laptopomon? Vagy esetleg szeretném automatizálni ezt a központi telepítést a teljes CI/CD folyamat részeként, ahol a jelenlegi integrációs tesztjeim, biztonsági tesztjeim és egyebek futnak? Ez az a része a történetnek, ahol megjelenik a GitLab CI/CD!

NB Ha csak a CI / CD bevezetését tervezi, vagy el szeretné kezdeni a legjobb gyakorlatok alkalmazását a csővezetékek építéséhez, figyeljen az új Slurm tanfolyamra. "CI/CD a Gitlab CI példáján". Már előrendelhető áron elérhető.

Útpont a GitLab CI/CD-ben

Hogy mindezt GitLab CI/CD-ben hangszerelhessük, nézzük meg, mire van szükségünk a fájlunkban .gitlab-ci.yml:

  • Először is szükség van egy alapképre, hogy futni tudjon benne. A Waypoint bármilyen Linux disztribúción fut, csak Docker kell hozzá, így egy általános Docker képpel tudunk futni.
  • Ezután telepítenie kell a Waypointot ebbe a képbe. A jövőben gyűjthetünk meta build kép és konténerezd magadnak ezt a folyamatot.
  • Végül lefuttatjuk az Útpont parancsokat

Fent van minden, amire a folyamatunknak szüksége lesz a telepítés végrehajtásához szükséges szkriptek futtatásához, de az AWS-be történő telepítéshez még egy dologra van szükségünk: be kell jelentkeznünk az AWS-fiókunkba. Az útpont leírásában vannak tervei a hitelesítésről és az engedélyezésről. A HashiCorp ezen a héten egy lenyűgöző projektet is kiadott Határ. De egyelőre csak magunk tudjuk kezelni a hitelesítést és az engedélyezést.

Számos lehetőség van a GitLab CICD-hitelesítésére az AWS-en. Az első lehetőség a beépített eszköz használata HashiCorp Vault. Rendben van, ha csapata már használja a Vault szolgáltatást a hitelesítési adatok kezelésére. Egy másik módszer, amely akkor működik, ha csapata az AWS IAM használatával kezeli az engedélyezést, hogy ellenőrizze, hogy a kézbesítési feladatok a GitLab RunnerA, amely jogosult a központi telepítés elindítására az IAM-en keresztül. De ha csak meg akarja ismerni a Waypointot, és gyorsan meg akarja tenni, az utolsó lehetőség az, hogy hozzáadja az AWS API-t és a titkos kulcsokat GitLab CI/CD környezeti változók AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Mindezt együtt

Miután kitaláltuk a hitelesítést, kezdhetjük! A döntőnk .gitlab-ci.yml így néz ki:

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

Látod, egy képpel kezdjük docker:latest és állítson be néhány, a Waypoint által megkövetelt környezeti változót. fejezetben script letöltjük a legújabb Waypoint futtatható fájlt és betesszük /usr/local/bin. Mivel futónk már jogosult az AWS-re, egyszerűen futunk waypoint init, build, deploy и release.

Az összeállítási feladat kimenete megmutatja nekünk azt a végpontot, ahol az alkalmazást görgettük:

A HashiCorp Waypoint használata a GitLab CI/CD-vel való együttműködéshez

Útpont az egyik számos HashiCorp megoldás, amelyek remekül működnek a GitLabbal. Például az alkalmazás leszállítása mellett a mögöttes infrastruktúrát is hangszerelhetjük vele Terraform a GitLabban. Az SDLC biztonság szabványosítására is megvalósíthatjuk GitLab a Vault-tal CI/CD-folyamatokban lévő titkok és tokenek kezelésére, teljes körű megoldást nyújtva a fejlesztőknek és adminisztrátoroknak, akik a fejlesztés, a tesztelés és a gyártás során a titkos kezelésre támaszkodnak.

A HashiCorp és a GitLab által kifejlesztett közös megoldások a következetes ellátási lánc- és infrastruktúra-kezelés biztosításával segítenek a vállalatoknak megtalálni az alkalmazások fejlesztésének legjobb módját. A Waypoint újabb lépést tett a helyes irányba, és kíváncsian várjuk a projekt további fejlesztését. A Waypointról többet megtudhat ittis érdemes felfedezni dokumentáció и fejlesztési Terv projekt. Hozzáadtuk tudásunkat GitLab CICD dokumentáció. Ha saját maga szeretné kipróbálni, megtekintheti a teljes működő példát a következő címen: ezt az adattárat.

A videó tanfolyam elvégzésével megértheti a CI / CD alapelveit, elsajátíthatja a Gitlab CI-vel való munka minden finomságát, és elkezdheti alkalmazni a legjobb gyakorlatokat "CI/CD a Gitlab CI példáján". Csatlakozz most!

Forrás: will.com

Hozzászólás