Kako uporabljati HashiCorp Waypoint za sodelovanje z GitLab CI/CD

Kako uporabljati HashiCorp Waypoint za sodelovanje z GitLab CI/CD

HashiCorp je predstavil nov projekt Točka poti o HashiCorp Digital. Uporablja datoteko, ki temelji na HCL, za opis gradnje, pošiljanja in izdaje aplikacij za različne platforme v oblaku, od Kubernetesa do AWS in Google Cloud Run. Zamislite si Waypoint kot Terraform in Vagrant, sestavljena za opis postopka gradnje, pošiljanja in izdaje vaših aplikacij.

V skladu s svojo obliko je HashiCorp izdal Waypoint kot odprtokodno in ima veliko primerov. Raven orkestratorja je odvisna od vas, Waypoint je na voljo kot izvršljiva datoteka, ki jo lahko zaženete neposredno na prenosnem računalniku ali iz izbranega orodja za orkestracijo CI/CD. Cilj uvedbe aplikacije je prav tako odvisen od vas, saj Waypoint podpira Kubernetes, Docker, Google Cloud Run, AWS ECS itd.

Po branju super dokumentacijo in najbolj eleganten primeri aplikacij, ki jih ponuja HashiCorp, smo se odločili, da podrobneje pogledamo orkestracijo Waypoint z GitLab CI/CD. Da bi to naredili, bomo iz vzorčnega repozitorija vzeli preprosto aplikacijo Node.js, ki se izvaja na AWS ECS.

Po kloniranju repozitorija si poglejmo strukturo aplikacije, ki prikazuje eno stran:

Kako uporabljati HashiCorp Waypoint za sodelovanje z GitLab CI/CD

Kot ste morda opazili, v tem projektu ni datoteke Dockerfile. V primeru niso dodani, ker jih pravzaprav ne potrebujemo, saj bo zanje namesto nas poskrbel Waypoint. Oglejmo si datoteko podrobneje waypoint.hclrazumeti, kaj bo naredil:

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

Med fazo gradnje Waypoint uporablja izvorne pakete za gradnjo v oblaku (CNB), da določite programski jezik projekta in ustvarite sliko Docker brez uporabe datoteke Docker. Načeloma gre za isto tehnologijo, ki jo delno uporablja GitLab Auto DevOps v koraku samodejne gradnje. Lepo je videti, da se CNB podjetja CNCF vse bolj uveljavlja med uporabniki v industriji.

Ko je slika izdelana, jo bo Waypoint samodejno naložil v naš register AWS ECR, tako da bo pripravljena za pošiljanje. Na koncu montaže se uporabi korak dostave Dodatek AWS ECS za uvedbo naše aplikacije v naš račun AWS.

Z mojega prenosnika je enostavno. Vstavil sem Waypoint, ki je že preverjen v mojem računu AWS in "preprosto deluje". Toda kaj se zgodi, če želim preseči svoj prenosnik? Ali pa bi morda želel avtomatizirati to uvedbo kot del svojega celotnega cevovoda CI/CD, kjer se izvajajo moji trenutni integracijski testi, varnostni testi in drugi? To je del zgodbe, kjer nastopi GitLab CI/CD!

Opomba: Če šele načrtujete implementacijo CI / CD ali želite začeti uporabljati najboljše prakse za gradnjo cevovodov, bodite pozorni na nov tečaj Slurm. "CI/CD na primeru Gitlab CI". Zdaj je na voljo po ceni prednaročila.

Točka poti v GitLab CI/CD

Da bi vse to orkestrirali v GitLab CI/CD, poglejmo, kaj potrebujemo v naši datoteki .gitlab-ci.yml:

  • Najprej potrebujete osnovno sliko, ki se bo izvajala v njej. Waypoint deluje v kateri koli distribuciji Linuxa, potrebuje samo Docker, tako da lahko delujemo z generično sliko Docker.
  • Nato morate v to sliko namestiti Waypoint. V prihodnosti bomo morda zbirali meta build image in pospravite ta postopek zase.
  • Na koncu bomo zagnali ukaze Waypoint

Zgoraj je vse, kar bo naš cevovod potreboval za zagon skriptov, potrebnih za izvedbo uvajanja, a za uvajanje v AWS potrebujemo še eno stvar: prijaviti se moramo v svoj račun AWS. V opisu točke poti imeti načrte o avtentikaciji in avtorizaciji. HashiCorp je ta teden izdal tudi impresiven projekt Meja. Toda zaenkrat lahko samo sami prevzamemo in poskrbimo za preverjanje pristnosti in avtorizacijo.

Obstaja več možnosti za avtentikacijo GitLab CICD na AWS. Prva možnost je uporaba vgrajenega Trezor HashiCorp. V redu je, če vaša ekipa že uporablja Vault za upravljanje poverilnic. Druga metoda, ki deluje, če vaša ekipa upravlja avtorizacijo z uporabo AWS IAM, je preverjanje, ali so naloge dostave sprožene prek GitLab RunnerA, ki je pooblaščen za začetek razmestitve prek IAM. Če pa se želite samo seznaniti z Waypoint in želite to storiti hitro, je zadnja možnost, da dodate svoj AWS API in skrivne ključe v Spremenljivke okolja GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Vse skupaj

Ko ugotovimo avtentikacijo, lahko začnemo! Naš finale .gitlab-ci.yml izgleda tako:

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

Vidite, da začnemo s sliko docker:latest in nastavite nekaj spremenljivk okolja, ki jih zahteva Waypoint. V poglavju script prenesemo najnovejšo izvršljivo datoteko Waypoint in jo vstavimo /usr/local/bin. Ker je naš runner že avtoriziran v AWS, potem preprosto tečemo waypoint init, build, deploy и release.

Izhod gradbene naloge nam bo pokazal končno točko, kjer smo zagnali aplikacijo:

Kako uporabljati HashiCorp Waypoint za sodelovanje z GitLab CI/CD

Točka poti ena od številne rešitve HashiCorp, ki odlično delujejo z GitLabom. Na primer, poleg zagotavljanja aplikacije lahko orkestriramo osnovno infrastrukturo z Terraform v GitLabu. Za standardizacijo varnosti SDLC lahko izvajamo tudi GitLab s trezorjem za upravljanje skrivnosti in žetonov v cevovodih CI/CD, ki zagotavlja popolno rešitev za razvijalce in skrbnike, ki se za razvoj, testiranje in produkcijsko uporabo zanašajo na upravljanje skrivnosti.

Skupne rešitve, ki sta jih razvila HashiCorp in GitLab, pomagajo podjetjem najti najboljši način za razvoj aplikacij z zagotavljanjem doslednega upravljanja dobavne verige in infrastrukture. Waypoint je naredil še en korak v pravo smer in veselimo se nadaljnjega razvoja projekta. Izvedete lahko več o Waypoint tukajtudi vredno raziskovanja dokumentacijo и razvojni načrt projekt. Svoje znanje smo dodali k Dokumentacija GitLab CICD. Če želite sami preizkusiti, si lahko ogledate celoten delovni primer na to skladišče.

Z dokončanjem video tečaja lahko razumete načela CI / CD, obvladate vse podrobnosti dela z Gitlab CI in začnete uporabljati najboljše prakse. "CI/CD na primeru Gitlab CI"... Pridruži se nam!

Vir: www.habr.com

Dodaj komentar