Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

HashiCorp ukázal nový projekt Bod na trase na HashiCorp Digital. Používá soubor založený na HCL k popisu vytváření, odesílání a vydávání aplikací pro různé cloudové platformy od Kubernetes po AWS a Google Cloud Run. Představte si Waypoint jako Terraform a Vagrant dohromady, aby popsali proces vytváření, expedice a uvolňování vašich aplikací.

Společnost HashiCorp vydala Waypoint jako otevřený zdroj a přichází se spoustou příkladů. Úroveň orchestrátoru je na vás, Waypoint přichází jako spustitelný soubor, který můžete spustit přímo na vašem notebooku nebo z vašeho nástroje pro orchestraci CI/CD podle vašeho výběru. Cíl nasazení aplikace je také na vás, protože Waypoint podporuje Kubernetes, Docker, Google Cloud Run, AWS ECS a další.

Po přečtení úžasné dokumentace a nejhezčí příklady aplikací poskytovaných HashiCorp jsme se rozhodli blíže podívat na orchestraci Waypoint pomocí GitLab CI/CD. K tomu si z ukázkového úložiště vezmeme jednoduchou aplikaci Node.js běžící na AWS ECS.

Po naklonování úložiště se podívejme na strukturu aplikace, která zobrazuje jednu stránku:

Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

Jak jste si možná všimli, v tomto projektu není žádný Dockerfile. V příkladu nejsou přidány, protože je vlastně nepotřebujeme, protože Waypoint se o ně postará za nás. Pojďme se na soubor podívat blíže waypoint.hclabyste pochopili, co to udělá:

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

Během fáze sestavení Waypoint používá Cloud Native Buildpacks (ČNB) určit programovací jazyk projektu a vytvořit obraz Dockeru bez použití souboru Dockerfile. V principu se jedná o stejnou technologii, kterou částečně používá GitLab Auto DevOps v kroku Automatické sestavení. Je skvělé vidět, že ČNB společnosti CNCF získává stále větší ohlas mezi průmyslovými uživateli.

Jakmile je obrázek vytvořen, Waypoint jej automaticky nahraje do našeho registru AWS ECR, aby byl připraven k odeslání. Na konci montáže se používá krok dodání Doplněk AWS ECS k nasazení naší aplikace na náš účet AWS.

Z mého notebooku je to snadné. Vložil jsem Waypoint, který je již ověřen v mém účtu AWS a „prostě funguje“. Ale co se stane, když chci jít nad rámec svého notebooku? Nebo možná chci toto nasazení automatizovat jako součást mého celkového kanálu CI/CD, kde probíhají mé současné integrační testy, bezpečnostní testy a další? Toto je část příběhu, kde přichází GitLab CI/CD!

NB Pokud teprve plánujete implementaci CI / CD nebo chcete začít uplatňovat osvědčené postupy pro budování potrubí, věnujte pozornost novému kurzu Slurm. "CI/CD na příkladu Gitlab CI". Nyní je k dispozici za předobjednávkovou cenu.

Waypoint v GitLab CI/CD

Abychom to všechno zorganizovali v GitLab CI/CD, podívejme se, co potřebujeme v našem souboru .gitlab-ci.yml:

  • Nejprve potřebujete základní obrázek, který se v něm spustí. Waypoint běží na libovolné distribuci Linuxu, potřebuje pouze Docker, takže můžeme běžet s generickým obrazem Dockeru.
  • Dále musíte do tohoto obrazu nainstalovat Waypoint. V budoucnu můžeme sbírat meta sestavení obrazu a kontejnerizujte tento proces pro sebe.
  • Nakonec spustíme příkazy Waypoint

Výše je vše, co bude naše potrubí potřebovat ke spuštění skriptů potřebných k provedení nasazení, ale k nasazení do AWS potřebujeme ještě jednu věc: musíme se přihlásit ke svému účtu AWS. V popisu trasového bodu mít plány o autentizaci a autorizaci. HashiCorp tento týden také vydal působivý projekt Hranice. Ale zatím si můžeme autentizaci a autorizaci vzít a zvládnout sami.

Existuje několik možností pro ověřování GitLab CICD na AWS. První možností je použít vestavěný Trezor HashiCorp. Je v pořádku, pokud váš tým již používá Sejf pro správu pověření. Další metodou, která funguje, pokud váš tým spravuje autorizaci pomocí AWS IAM, je kontrola, zda jsou úlohy doručení spouštěny prostřednictvím GitLab RunnerA, který je oprávněn zahájit nasazení prostřednictvím IAM. Ale pokud se chcete s Waypointem jen seznámit a chcete to udělat rychle, poslední možností je přidat vaše AWS API a tajné klíče do Proměnné prostředí GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Dáte dohromady vše

Jakmile jsme zjistili autentizaci, můžeme začít! Naše finále .gitlab-ci.yml Vypadá to takhle:

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čínáme obrázkem docker:latest a nastavte několik proměnných prostředí požadovaných Waypointem. V kapitole script stáhneme si nejnovější spustitelný soubor Waypoint a vložíme jej /usr/local/bin. Protože náš běžec je již autorizován v AWS, pak jednoduše běžíme waypoint init, build, deploy и release.

Výstup úlohy sestavení nám ukáže koncový bod, kam jsme aplikaci spustili:

Jak používat HashiCorp Waypoint ke spolupráci s GitLab CI/CD

Trasový bod jeden z četná řešení HashiCorp, které skvěle fungují s GitLabem. Například kromě dodání aplikace můžeme zorganizovat základní infrastrukturu Terraform v GitLabu. Pro standardizaci zabezpečení SDLC můžeme také implementovat GitLab s Vaultem pro správu tajemství a tokenů v kanálech CI/CD, poskytující kompletní řešení pro vývojáře a administrátory, kteří spoléhají na správu tajemství při vývoji, testování a produkčním použití.

Společná řešení vyvinutá společnostmi HashiCorp a GitLab pomáhají společnostem najít nejlepší způsob vývoje aplikací zajištěním konzistentního řízení dodavatelského řetězce a infrastruktury. Waypoint udělal další krok správným směrem a těšíme se na další rozvoj projektu. Můžete se dozvědět více o Waypoint zdetaké stojí za prozkoumání dokumentace и vývojový plán projekt. Přidali jsme naše znalosti Dokumentace GitLab CICD. Pokud si to chcete vyzkoušet sami, můžete se podívat na kompletní pracovní příklad na adrese toto úložiště.

Můžete porozumět principům CI / CD, zvládnout všechny jemnosti práce s Gitlab CI a začít uplatňovat osvědčené postupy absolvováním videokurzu "CI/CD na příkladu Gitlab CI"... Připoj se k nám!

Zdroj: www.habr.com

Přidat komentář