Ako používať HashiCorp Waypoint na spoluprácu s GitLab CI/CD

Ako používať HashiCorp Waypoint na spoluprácu s GitLab CI/CD

HashiCorp ukázal nový projekt waypoint na HashiCorp Digital. Používa súbor založený na HCL na popis zostavovania, poskytovania a vydávania aplikácií pre rôzne cloudové platformy, od Kubernetes cez AWS až po Google Cloud Run. Waypoint si môžete predstaviť ako kombináciu Terraform a Vagrant, aby ste opísali proces vytvárania, prepravy a uvoľňovania vašich aplikácií.

Spoločnosť HashiCorp vydala Waypoint ako open source a prichádza s mnohými príkladmi. Vrstva orchestrátora je na vás, Waypoint prichádza ako spustiteľný súbor, ktorý môžete spustiť priamo na svojom notebooku alebo z vášho nástroja na orchestráciu CI/CD podľa vlastného výberu. Cieľ nasadenia vašich aplikácií je tiež na vás, pretože Waypoint podporuje Kubernetes, Docker, Google Cloud Run, AWS ECS a ďalšie.

Po prečítaní úžasného dokumentácia a najluxusnejšie príklady aplikácií poskytovaných spoločnosťou HashiCorp, rozhodli sme sa bližšie pozrieť na orchestráciu Waypoint pomocou GitLab CI/CD. Aby sme to urobili, vezmeme jednoduchú aplikáciu Node.js spustenú na AWS ECS z úložiska príkladov.

Po naklonovaní úložiska sa pozrime na štruktúru aplikácie zobrazujúcu jednu stránku:

Ako používať HashiCorp Waypoint na spoluprácu s GitLab CI/CD

Ako ste si mohli všimnúť, tento projekt nemá súbor Dockerfile. V príklade nie sú pridané, pretože ich v zásade nepotrebujeme, pretože Waypoint sa o ne postará za nás. Pozrime sa bližšie na súbor waypoint.hclaby ste pochopili, čo to urobí:

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

Počas fázy zostavovania Waypoint používa Cloud Native Buildpacks (CNB) určiť programovací jazyk projektu a vytvoriť obraz Docker bez použitia súboru Dockerfile. V princípe ide o rovnakú technológiu, ktorú čiastočne využíva aj GitLab Auto DevOps v kroku Auto Build. Je dobré vidieť, že ČNB spoločnosti CNCF si získava čoraz väčšie osvojenie medzi používateľmi v priemysle.

Po vytvorení obrázka ho Waypoint automaticky nahrá do nášho registra AWS ECR, aby bol pripravený na doručenie. Po dokončení zostavy sa použije krok doručenia Doplnok AWS ECS na nasadenie našej aplikácie do nášho účtu AWS.

Z môjho notebooku - všetko je jednoduché. Vložil som Waypoint, ktorý je už overený, do môjho účtu AWS a „len funguje“. Čo sa však stane, ak chcem ísť nad rámec svojho notebooku? Alebo chcem zrazu zautomatizovať toto nasadenie ako súčasť môjho celkového kanála CI/CD, kde prebiehajú moje prebiehajúce integračné testy, bezpečnostné testy a iné? Toto je časť príbehu, kde prichádza GitLab CI/CD!

NB Ak práve plánujete implementovať CI/CD alebo chcete začať uplatňovať osvedčené postupy pri budovaní potrubí, venujte pozornosť novému kurzu Slurm „CI/CD s použitím Gitlab CI ako príklad“. Teraz je k dispozícii za predobjednávkovú cenu.

Trasový bod v GitLab CI/CD

Aby sme to všetko zorganizovali v GitLab CI/CD, pozrime sa na to, čo potrebujeme v našom súbore .gitlab-ci.yml:

  • V prvom rade potrebujete základný obrázok, ktorý sa v ňom spustí. Waypoint funguje na akejkoľvek linuxovej distribúcii, potrebuje iba Docker, takže môžeme bežať s generickým obrazom Docker.
  • Ďalej musíte nainštalovať Waypoint v tomto obrázku. V budúcnosti môžeme zbierať meta zostava obrázka a kontajnerizujte tento proces pre seba.
  • Nakoniec spustíme príkazy Waypoint

Vyššie uvedené načrtáva všetko, čo bude náš kanál potrebovať na spustenie skriptov potrebných na dokončenie nasadenia, ale na nasadenie do AWS budeme potrebovať ešte jednu vec: musíme byť prihlásení do nášho účtu AWS. V popise trasového bodu existujú plány o autentifikácii a autorizácii. HashiCorp tiež vydal tento týždeň pôsobivý projekt Hranice. Ale zatiaľ si overenie a autorizáciu môžeme zvládnuť sami.

Existuje niekoľko možností overenia CICD GitLab v AWS. Prvou možnosťou je použitie vstavaného Trezor HashiCorp. Je to skvelé, ak váš tím už používa Vault na správu poverení. Ďalšou možnosťou, ktorá funguje, ak váš tím spravuje autorizáciu pomocou AWS IAM, je skontrolovať, či sa úlohy doručenia spúšťajú GitLab Runner, oprávnený spustiť nasadenie prostredníctvom IAM. Ak sa však chcete s Waypointom len zoznámiť a chcete to urobiť rýchlo, je tu posledná možnosť – pridať svoje AWS API a tajné kľúče do Premenné prostredia GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Všetko to spolu

Keď pochopíme autentifikáciu, môžeme začať! Naše finále .gitlab-ci.yml vyzerá takto:

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

Vidíte, že začíname obrázkom docker:latest a nastavte niekoľko premenných prostredia, ktoré vyžaduje Waypoint. V kapitole script stiahneme si najnovšiu verziu spustiteľného súboru Waypoint a nainštalujeme ho /usr/local/bin. Keďže náš bežec je už autorizovaný v AWS, ďalej jednoducho bežíme waypoint init, build, deploy и release.

Výstup úlohy zostavenia nám ukáže koncový bod, kde sme aplikáciu spustili:

Ako používať HashiCorp Waypoint na spoluprácu s GitLab CI/CD

Trasový bod jeden z početné riešenia HashiCorp, funguje skvele s GitLab. Napríklad okrem dodania aplikácie môžeme organizovať aj základnú infraštruktúru Terraform na GitLab. Na štandardizáciu zabezpečenia SDLC môžeme tiež implementovať GitLab s Vaultom na správu tajomstiev a tokenov v kanáloch CI/CD, ktoré poskytujú holistické riešenie pre vývojárov a správcov, ktorí sa spoliehajú na správu tajomstiev pri vývoji, testovaní a produkčnom použití.

Spoločné riešenia vyvinuté spoločnosťami HashiCorp a GitLab pomáhajú spoločnostiam nájsť lepší spôsob vývoja aplikácií poskytovaním konzistentnej správy doručovacích potrubí a infraštruktúry. Waypoint urobili ďalší krok správnym smerom a tešíme sa na ďalší rozvoj projektu. Môžete sa dozvedieť viac o Waypoint tu, tiež stojí za preskúmanie dokumentácia и plán rozvoja projektu. Doplnili sme poznatky, ktoré sme získali Dokumentácia CICD GitLab. Ak si chcete všetko vyskúšať sami, môžete si vziať kompletný pracovný príklad toto úložisko.

Môžete pochopiť princípy CI/CD, zvládnuť všetky zložitosti práce s Gitlab CI a začať uplatňovať osvedčené postupy absolvovaním video kurzu „CI/CD s použitím Gitlab CI ako príklad“... Pripoj sa k nám!

Zdroj: hab.com

Pridať komentár