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

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

A HashiCorp bemutatta új projektjét Waypoint Gyorsan emlékezzünk vissza, hogyan működik a moduláris aritmetika. Az óra már egy ismert koncepció. Az órák használata HashiCorp Digital. Ez egy HCL-alapú fájlt használ az alkalmazások összeállításának, szállításának és kiadásának leírására különböző felhőplatformok számára, kezdve a Kubernetestől egészen az AWS-ig és a Google Cloud Run-ig. Elképzelhető, hogy a Waypoint a Terraform és a Vagrant kombinációja az alkalmazásaink összeállítási, szállítási és kiadási folyamatainak leírására.

Hűen önmagához, a HashiCorp nyílt forráskódú módon adta ki a Waypointot, amelyhez számos példa is tartozik. Az, hogy melyik rendszerezőt használja, az Ön döntése, mivel a Waypoint végrehajtható fájlként kerül forgalmazásra, amelyet közvetlenül a laptopján vagy az általa választott CI/CD orchestrációs eszközből indíthat el. A cél az alkalmazások telepítése szintén az Ön választása, mivel a Waypoint támogatja a Kubernetes-t, Docker-t, Google Cloud Run-t, AWS ECS-t és másokat.

Olvasva az elképesztő a dokumentációval és nagyszerű példákat alkalmazásokat, amelyeket a HashiCorp kínál, közelebbről megvizsgáltuk a Waypoint orkestrációját a GitLab CI/CD segítségével. Ehhez egy egyszerű Node.js alkalmazást veszünk, amely az AWS ECS-en fut, a példa repozitóriumból.

Miután lemásoltuk a repozitóriumot, megnézzük az alkalmazás felépítését, amely egyoldalas megjelenítést nyújt:

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

Ahogyan észrevette, ebben a projektben nincs Dockerfile. Azért nem szerepelnek a példában, mert valójában nincs szükség rájuk, mivel a Waypoint gondoskodik róluk helyettünk. Nézzük meg alaposabban a fájlt waypoint.hcl, hogy megértsük, mit fog csinálni:

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 összeállítási folyamat során a Waypoint Cloud Native Buildpackokat (CNB) használ, hogy meghatározva a projekt programozási nyelvét, Docker képet állítson elő Dockerfile nélkül. Ez tulajdonképpen ugyanaz a technológia, amelyet a GitLab használ az Auto DevOps Auto Build lépésében. Jó látni, hogy a CNB a CNCF-től egyre nagyobb elismerést kap az iparági felhasználóktól.

Amint a kép elkészül, a Waypoint automatikusan feltölti azt az AWS ECR registry-be, hogy készen álljon a szállításra. Az összeállítás befejeztével a szállítási lépés az AWS ECS bővítményt használja az alkalmazásunk telepítésére az AWS fiókunkba.

A laptopomról minden egyszerű. Telepítem a Waypointot, amely már hitelesítve van az AWS fiókomban, és "egyszerűen működik". De mi van, ha szeretnék túllépni a laptopomon? Vagy ha hirtelen automatizálni szeretném ezt a telepítést a CI/CD csővezetékem részeként, ahol a jelenlegi integrációs tesztjeim, biztonsági tesztjeim és egyéb tesztek futnak? Itt lép be a történetbe a GitLab CI/CD!

Figyelem. Ha még csak tervezed a CI/CD bevezetését, vagy a legjobb gyakorlatokat szeretnéd alkalmazni a csővezetékek építése során, nézd meg a Slurm új tanfolyamát. „CI/CD a GitLab CI példáján”. Jelenleg előrendelési áron elérhető.

Waypoint a GitLab CI/CD-ben

Az egésznek az orkestrálásához a GitLab CI/CD-ben nézzük meg, hogy mire lesz szükség a fájlunkban. .gitlab-ci.yml:

  • Először is szükség van egy alapképre, amelyen futni fog. A Waypoint bármilyen Linux disztribúcióval működik, csak Docker szükséges, így egy általános Docker képből indulhatunk.
  • Ezután telepíteni kell a Waypointot erre a képre. A jövőben összeállíthatunk meta build képet és konténerizálhatjuk ezt a folyamatot magunknak.
  • Végül végrehajtjuk a Waypoint parancsokat.

Fent minden szükséges dolgot felsoroltunk, amire a csővezetékünknek szüksége van a telepítési szkriptek futtatásához, de az AWS-be való telepítéshez szükségünk lesz még egy dologra: be kell jelentkeznünk az AWS fiókunkba. A Waypoint leírásában találhatók tervek a hitelesítésről és jogosultságokról. A HashiCorp ezen a héten egy lenyűgöző projektet is kiadott Boundary. De egyelőre egyszerűen megoldhatjuk a hitelesítést és a jogosultságokat magunk is.

Az AWS-hez való GitLab CICD hitelesítésnek több lehetősége van. Az első lehetőség a beépített HashiCorp Vault. Ez jól jöhet, ha a csapatod már használja a Vaultot a hitelesítési adatok kezelésére. Egy másik módszer, ami hasznos, ha a csapatod az AWS IAM-en keresztül végzi a jogosultságkezelést – ellenőrizd, hogy a szállítási feladatok az IAM-en keresztül jogosultak a telepítés végrehajtására. De ha csak meg szeretnéd ismerni a Waypointot, és ezt gyorsabban szeretnéd megtenni, van egy utolsó lehetőség – add hozzá az AWS API és Secret kulcsaidat a GitLab RunnerGitLab CI/CD környezeti változóiba. Mindent összeállítunk AWS_ACCESS_KEY_ID és AWS_SECRET_ACCESS_KEY.

Miután megoldottuk a hitelesítést, kezdhetjük! A végső

így néz ki: .gitlab-ci.yml így néz ki:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Környezeti változók definiálása, pl. `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átja, hogy az image-el kezdjük docker:latest és beállítunk néhány környezeti változót, amely szükséges a Waypoint számára. A script szakaszban letöltjük a Waypoint legújabb verzióját és telepítjük azt a /usr/local/binmappába. Mivel a futtatónk már be van jelentkezve az AWS-be, tovább a waypoint init, build, after_deploy és release.

A build feladat kimenete megmutatja nekünk az endpointot, ahová az alkalmazást telepítettük:

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

A Waypoint az egyik sok HashiCorp megoldás közül, ami kiválóan működik a GitLab-lal. Például az alkalmazás telepítése mellett orkestrálhatjuk az alatta lévő infrastruktúrát a Terraform segítségével a GitLabon. A SDLC biztonságának standardizálása érdekében a GitLab-ot a Vault-tal is integrálhatjuk a titkok és tokenek kezelésére a CI/CD folyamatok során, átfogó megoldást biztosítva a fejlesztőknek és rendszergazdáknak, akik a titkok kezelésére támaszkodnak a fejlesztés, tesztelés és ipari használat során.

A HashiCorp és a GitLab által fejlesztett közös megoldások segítik a vállalatokat abban, hogy megtalálják a legjobb módszert az alkalmazások fejlesztésére, biztosítva a következetes szállítási folyamatok és infrastruktúra kezelését. A Waypoint egy újabb lépést tett a helyes irányba, és izgatottan várjuk a projekt további fejlődését. További információt találhat a Waypointról, ittemellett érdemes áttanulmányozni a a dokumentációval és fejlesztési tervet a projekthez. A megszerzett tudásunkat beleraktuk a GitLab CICD dokumentációjába.Ha szeretné önállóan kipróbálni az egészet, elérheti a teljes működő példát a huszáreposotriumban..

A CI/CD alapelveit megérteni, a Gitlab CI használatának minden finomságát elsajátítani és a legjobb gyakorlatokat alkalmazni lehet videokurzusunk elvégzésével. „CI/CD a GitLab CI példáján”Csatlakozzon!

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster