Jak używać HashiCorp Waypoint do współpracy z GitLab CI/CD

Jak używać HashiCorp Waypoint do współpracy z GitLab CI/CD

HashiCorp pokazało nowy projekt Waypoint na HashiCorp Cyfrowy. Używa pliku opartego na HCL do opisu kompilacji, dostarczania i wydawania aplikacji dla różnych platform chmurowych, od Kubernetes przez AWS po Google Cloud Run. Możesz myśleć o Waypoint jako połączeniu Terraform i Vagrant, aby opisać proces tworzenia, wysyłania i wydawania aplikacji.

Zgodnie z formą HashiCorp udostępniło Waypoint jako oprogramowanie typu open source i zawiera wiele przykładów. Warstwa orkiestratora zależy od Ciebie. Waypoint jest dostępny jako plik wykonywalny, który możesz uruchomić bezpośrednio na swoim laptopie lub z wybranego narzędzia do orkiestracji CI/CD. Cel wdrożenia aplikacji zależy również od Ciebie, ponieważ Waypoint obsługuje Kubernetes, Docker, Google Cloud Run, AWS ECS i nie tylko.

Po przeczytaniu niesamowitego dokumentacja i najmodniejszy przykłady aplikacji dostarczonych przez HashiCorp, postanowiliśmy przyjrzeć się bliżej orkiestracji Waypoint przy użyciu GitLab CI/CD. W tym celu z repozytorium przykładów weźmiemy prostą aplikację Node.js działającą na AWS ECS.

Po sklonowaniu repozytorium przyjrzyjmy się strukturze aplikacji wyświetlającej jedną stronę:

Jak używać HashiCorp Waypoint do współpracy z GitLab CI/CD

Jak zapewne zauważyłeś, w tym projekcie nie ma pliku Dockerfile. Nie są one dodawane w przykładzie, bo w zasadzie ich nie potrzebujemy, bo Waypoint zajmie się nimi za nas. Przyjrzyjmy się bliżej plikowi waypoint.hclaby zrozumieć, co zrobi:

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

Na etapie kompilacji Waypoint korzysta z natywnych pakietów kompilacji Cloud (CNB), aby określić język programowania projektu i utworzyć obraz Dockera bez użycia pliku Dockerfile. W zasadzie jest to ta sama technologia, z której po części korzysta GitLab Automatyczne DevOps na etapie automatycznego tworzenia. Wspaniale jest widzieć, że CNB firmy CNCF staje się coraz bardziej popularne wśród użytkowników przemysłowych.

Po utworzeniu obrazu Waypoint automatycznie prześle go do naszego rejestru AWS ECR, aby był gotowy do dostarczenia. Na koniec montażu następuje etap dostawy Dodatek AWS ECS aby wdrożyć naszą aplikację na naszym koncie AWS.

Z mojego laptopa jest to łatwe. Umieściłem Waypoint, który jest już uwierzytelniony na moim koncie AWS i „po prostu działa”. Ale co się stanie, jeśli chcę wyjść poza mój laptop? A może chcę zautomatyzować to wdrożenie w ramach ogólnego potoku CI/CD, w którym przeprowadzane są moje obecne testy integracyjne, testy bezpieczeństwa i inne? To jest część historii, w której pojawia się GitLab CI/CD!

NB Jeśli dopiero planujesz wdrożenie CI/CD lub chcesz zacząć stosować najlepsze praktyki przy budowie rurociągów, zwróć uwagę na nowy kurs Slurma „CI/CD na przykładzie Gitlab CI”. Jest już dostępny w cenie przedsprzedażowej.

Punkt orientacyjny w GitLab CI/CD

Aby to wszystko zaaranżować w GitLab CI/CD, przyjrzyjmy się, czego potrzebujemy w naszym pliku .gitlab-ci.yml:

  • Przede wszystkim potrzebujesz obrazu bazowego, aby w nim działać. Waypoint działa na dowolnej dystrybucji Linuksa, potrzebuje jedynie Dockera, więc możemy działać z ogólnym obrazem Dockera.
  • Następnie musisz zainstalować Waypoint na tym obrazie. W przyszłości być może uda nam się zebrać metakompilacja obrazu i skonteneryzuj ten proces dla siebie.
  • Na koniec uruchomimy polecenia Waypoint

Powyższe opisuje wszystko, czego nasz potok będzie potrzebował, aby uruchomić skrypty potrzebne do ukończenia wdrożenia, ale aby wdrożyć w AWS, będziemy potrzebować jeszcze jednej rzeczy: musimy być zalogowani na naszym koncie AWS. W opisie Waypointa są plany o uwierzytelnianiu i autoryzacji. HashiCorp również wydało w tym tygodniu imponujący projekt Boundary. Ale na razie możemy sami zająć się uwierzytelnianiem i autoryzacją.

Istnieje kilka opcji uwierzytelniania GitLab CICD w AWS. Pierwszą opcją jest użycie wbudowanego Skarbiec korporacji Hashi. Nie ma problemu, jeśli Twój zespół korzysta już z Vault do zarządzania danymi uwierzytelniającymi. Inną metodą, która działa, jeśli Twój zespół zarządza autoryzacją przy użyciu AWS IAM, jest sprawdzenie, czy zadania dostarczania są uruchamiane za pośrednictwem Biegacz GitLabA, który jest autoryzowany do rozpoczęcia wdrożenia za pośrednictwem uprawnień. Ale jeśli chcesz po prostu zapoznać się z Waypointem i chcesz to zrobić szybko, istnieje ostatnia opcja - dodaj swoje API AWS i tajne klucze do Zmienne środowiskowe GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Wszystko razem

Kiedy już ustalimy uwierzytelnianie, możemy zaczynać! Nasz finał .gitlab-ci.yml Wygląda to tak:

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

Widzisz, że zaczynamy od obrazu docker:latest i ustaw kilka zmiennych środowiskowych wymaganych przez Waypoint. W rozdziale script pobieramy najnowszy plik wykonywalny Waypoint i instalujemy go /usr/local/bin. Ponieważ nasz biegacz jest już autoryzowany w AWS, dalej po prostu biegniemy waypoint init, build, deploy и release.

Dane wyjściowe zadania kompilacji pokażą nam punkt końcowy, w którym wdrożyliśmy aplikację:

Jak używać HashiCorp Waypoint do współpracy z GitLab CI/CD

Waypoint jeden z liczne rozwiązania HashiCorp, które świetnie współpracują z GitLabem. Na przykład, oprócz dostarczenia aplikacji, możemy zaaranżować istniejącą infrastrukturę za pomocą Terraform na GitLabie. Aby ujednolicić bezpieczeństwo SDLC, możemy również wdrożyć GitLab z Vaultem do zarządzania sekretami i tokenami w potokach CI/CD, zapewniając całościowe rozwiązanie dla programistów i administratorów, którzy polegają na zarządzaniu sekretami na potrzeby programowania, testowania i zastosowań produkcyjnych.

Wspólne rozwiązania opracowane przez HashiCorp i GitLab pomagają firmom znaleźć lepszy sposób na tworzenie aplikacji, zapewniając spójne zarządzanie rurociągami dostaw i infrastrukturą. Waypoint wykonał kolejny krok we właściwym kierunku i nie możemy się doczekać dalszego rozwoju projektu. Możesz dowiedzieć się więcej o Waypoint tutaj, też warto poznać dokumentacja и plan rozwoju projekt. Dodaliśmy naszą wiedzę do Dokumentacja GitLab CICD. Jeśli chcesz spróbować wszystkiego sam, możesz wziąć kompletny działający przykład to repozytorium.

Możesz zrozumieć zasady CI/CD, opanować wszystkie zawiłości pracy z Gitlab CI i zacząć stosować najlepsze praktyki, biorąc udział w kursie wideo „CI/CD na przykładzie Gitlab CI”. Dołącz teraz!

Źródło: www.habr.com

Dodaj komentarz