Kumaha ngagunakeun HashiCorp Waypoint pikeun Kolaborasi sareng GitLab CI/CD

Kumaha ngagunakeun HashiCorp Waypoint pikeun Kolaborasi sareng GitLab CI/CD

HashiCorp némbongkeun proyék anyar Titik jalan dina HashiCorp Digital. Éta ngagunakeun file dumasar-HCL pikeun ngajelaskeun ngawangun, pangiriman, sareng sékrési aplikasi pikeun rupa-rupa platform awan, mimitian ti Kubernetes ka AWS ka Google Cloud Run. Anjeun tiasa nganggap Waypoint salaku Terraform sareng Vagrant digabungkeun pikeun ngajelaskeun prosés ngawangun, pengiriman, sareng ngaleupaskeun aplikasi anjeun.

Leres pikeun ngabentuk, HashiCorp parantos ngaluarkeun Waypoint salaku open source sareng seueur conto. Lapisan orchestrator terserah anjeun, Waypoint asalna salaku eksekusi anu anjeun tiasa jalankeun langsung dina laptop anjeun atanapi tina alat orkestrasi CI / CD pilihan anjeun. Target pikeun nyebarkeun aplikasi anjeun ogé terserah anjeun, sabab Waypoint ngadukung Kubernetes, Docker, Google Cloud Run, AWS ECS, sareng seueur deui.

Sanggeus maca Heboh dokuméntasi jeung paling méwah conto aplikasi anu disayogikeun ku HashiCorp, kami mutuskeun pikeun ningali langkung caket kana orkestrasi Waypoint nganggo GitLab CI / CD. Jang ngalampahkeun ieu, urang bakal nyandak aplikasi Node.js basajan anu dijalankeun dina AWS ECS tina gudang conto.

Saatos kloning gudang, hayu urang tingali struktur aplikasi anu ningalikeun hiji halaman:

Kumaha ngagunakeun HashiCorp Waypoint pikeun Kolaborasi sareng GitLab CI/CD

Sakumaha anjeun parantos perhatikeun, proyék ieu henteu gaduh Dockerfile. Aranjeunna teu ditambahkeun dina conto, sabab prinsipna urang teu butuh aranjeunna, sabab Waypoint bakal ngurus aranjeunna keur urang. Hayu urang nempo leuwih deukeut file waypoint.hclngartos naon anu bakal dilakukeun:

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

Salila fase ngawangun, Waypoint ngagunakeun Cloud Native Buildpacks (CNB) pikeun nangtukeun basa pamrograman proyék sareng nyiptakeun gambar Docker tanpa nganggo Dockerfile. Sacara prinsip, ieu mangrupikeun téknologi anu sami anu dianggo ku GitLab sabagian Otomatis DevOps dina hambalan Otomatis Ngawangun. Ieu alus pikeun nempo yén CNCF urang CNB ieu gaining leuwih nyoko diantara pamaké industri.

Saatos gambar diwangun, Waypoint bakal otomatis unggah kana pendaptaran AWS ECR kami supados siap dikirimkeun. Sakali ngawangun réngsé, léngkah pangiriman ngagunakeun AWS ECS tambihan pikeun nyebarkeun aplikasi kami ka akun AWS kami.

Tina laptop kuring - sadayana saderhana. Kuring nempatkeun Waypoint anu parantos dioténtikasi kana akun AWS kuring sareng éta "ngan jalanna". Tapi naon anu bakal kajadian upami kuring hoyong ngalangkungan laptop kuring? Atanapi kuring ujug-ujug hoyong ngajadikeun otomatis panyebaran ieu salaku bagian tina jalur pipa CI / CD kuring, dimana tés integrasi, tés kaamanan, sareng anu sanésna dijalankeun? Ieu mangrupikeun bagian tina carita dimana GitLab CI / CD asup!

NB Upami anjeun nembé ngarencanakeun pikeun nerapkeun CI / CD atanapi badé ngawitan nerapkeun prakték pangsaéna pikeun ngawangun saluran pipa, perhatosan kursus anyar Slurm. "CI / CD nganggo Gitlab CI salaku conto". Ayeuna sayogi dina harga pre-order.

Waypoint dina GitLab CI/CD

Pikeun ngatur sadayana ieu dina GitLab CI/CD, hayu urang tingali naon anu urang peryogikeun dina file urang .gitlab-ci.yml:

  • Anu mimiti, anjeun peryogi gambar dasar pikeun ngajalankeun di jerona. Waypoint dianggo dina distribusi Linux naon waé, éta ngan ukur peryogi Docker, ku kituna urang tiasa ngajalankeun gambar Docker umum.
  • Teras anjeun kedah pasang Waypoint dina gambar ieu. Dina mangsa nu bakal datang urang bisa ngumpulkeun gambar meta ngawangun sareng wadahna prosés ieu pikeun diri anjeun.
  • Tungtungna urang bakal ngajalankeun paréntah Waypoint

Di luhur outlines sagalana pipa kami bakal perlu ngajalankeun skrip diperlukeun pikeun ngalengkepan deployment, tapi nyebarkeun ka AWS kami bakal butuh hiji hal deui: urang kudu asup kana akun AWS urang. Dina pedaran Waypoint aya rencana ngeunaan auténtikasi jeung otorisasina. HashiCorp ogé ngaluarkeun proyék anu pikaresepeun minggu ieu wates. Tapi pikeun ayeuna, urang ngan tiasa ngadamel auténtikasi sareng otorisasina sorangan.

Aya sababaraha pilihan pikeun auténtikasi GitLab CICD di AWS. Pilihan kahiji nyaéta ngagunakeun diwangun-di Kolong HashiCorp. Ieu saé upami tim anjeun parantos nganggo Vault pikeun manajemén kredensial. Pilihan séjén anu tiasa dianggo upami tim anjeun ngatur otorisasi nganggo AWS IAM nyaéta mariksa yén tugas pangiriman dipicu ngaliwatan GitLab Runner, otorisasi pikeun ngajalankeun deployment ngaliwatan IAM. Tapi upami anjeun hoyong wawuh sareng Waypoint sareng hoyong gancang, aya hiji pilihan terakhir - tambahkeun API AWS anjeun sareng konci Rahasia ka Variabel lingkungan GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Putting eta sadayana babarengan

Sakali urang ngartos auténtikasi, urang tiasa ngamimitian! final urang .gitlab-ci.yml Sigana kieu:

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

Nu katingali yén urang mimitian ku gambar docker:latest tur nyetel sababaraha variabel lingkungan diperlukeun ku Waypoint. Dina bab script urang ngundeur versi panganyarna tina Waypoint executable tur masangkeunana di /usr/local/bin. Kusabab runner kami geus otorisasi di AWS, salajengna urang ngan ngajalankeun waypoint init, build, deploy и release.

Kaluaran tugas ngawangun bakal nunjukkeun ka kami titik akhir dimana kami ngagulung aplikasina:

Kumaha ngagunakeun HashiCorp Waypoint pikeun Kolaborasi sareng GitLab CI/CD

Waypoint salah sahiji seueur solusi HashiCorp, dianggo hébat sareng GitLab. Contona, salian ti delivering aplikasi, urang tiasa orchestrate infrastruktur kaayaan ngagunakeun Terraform dina GitLab. Pikeun ngabakukeun kaamanan SDLC, urang ogé bisa nerapkeun GitLab sareng Vault pikeun ngatur rusiah sarta tokens dina pipelines CI / CD, nyadiakeun solusi holistik pikeun pamekar jeung pangurus anu ngandelkeun manajemén Rahasia pikeun ngembangkeun, nguji, sarta pamakéan produksi.

Solusi gabungan anu dikembangkeun ku HashiCorp sareng GitLab ngabantosan perusahaan milarian cara anu langkung saé pikeun ngembangkeun aplikasi ku cara nyayogikeun manajemén anu konsisten pikeun pipa sareng infrastruktur pangiriman. Waypoint parantos nyandak léngkah anu sanés dina arah anu leres sareng kami ngarepkeun pangwangunan proyék éta. Anjeun tiasa mendakan langkung seueur ngeunaan Waypoint di dieu, ogé patut Ngalanglang dokuméntasi и rencana pangwangunan proyék. Kami parantos nambihan pangaweruh anu kami kéngingkeun dokuméntasi GitLab CICD. Upami anjeun hoyong nyobian sadayana nyalira, anjeun tiasa nyandak conto kerja lengkep dina gudang ieu.

Anjeun tiasa ngartos prinsip CI / CD, ngawasaan sagala intricacies gawé bareng Gitlab CI tur mimitian nerapkeun prakték pangalusna ku nyokot kursus video. "CI / CD nganggo Gitlab CI salaku conto". Ngahiji sareng Kami!

sumber: www.habr.com

Tambahkeun komentar