GitLab CI/CD-тэй хамтран ажиллахын тулд HashiCorp Waypoint-ийг хэрхэн ашиглах вэ

GitLab CI/CD-тэй хамтран ажиллахын тулд HashiCorp Waypoint-ийг хэрхэн ашиглах вэ

HashiCorp шинэ төслийг үзүүлэв Замын цэг тухай HashiCorp Digital. Энэ нь HCL-д суурилсан файлыг ашиглан Kubernetes, AWS, Google Cloud Run хүртэлх олон төрлийн үүлэн платформд зориулсан програмуудыг бүтээх, хүргэх, гаргахыг тайлбарладаг. Та Waypoint-ийг Terraform болон Vagrant-ийн хосолсон программуудыг бүтээх, тээвэрлэх, гаргах үйл явцыг тайлбарлах боломжтой гэж бодож болно.

Үнэн хэрэгтээ HashiCorp нь Waypoint-ийг нээлттэй эх сурвалж болгон гаргасан бөгөөд олон жишээн дээр ирдэг. Оркестраторын давхарга нь танаас шалтгаална, Waypoint нь гүйцэтгэх файл хэлбэрээр ирдэг бөгөөд та зөөврийн компьютер дээрээ эсвэл өөрийн сонгосон CI/CD зохион байгуулах хэрэгслээс шууд ажиллуулж болно. Waypoint нь Kubernetes, Docker, Google Cloud Run, AWS ECS болон бусад програмуудыг дэмждэг тул таны аппликешнүүдийг байршуулах зорилго нь танаас хамаарна.

Гайхалтай уншсаны дараа баримт бичиг бас хамгийн тансаг Жишээ нь HashiCorp-аас өгсөн програмуудын хувьд бид GitLab CI/CD ашиглан Waypoint зохион байгуулалтыг нарийвчлан судлахаар шийдсэн. Үүнийг хийхийн тулд бид жишээ репозитороос AWS ECS дээр ажилладаг энгийн Node.js програмыг авна.

Хадгалах газрыг клончилсны дараа нэг хуудсыг харуулсан програмын бүтцийг харцгаая.

GitLab CI/CD-тэй хамтран ажиллахын тулд HashiCorp Waypoint-ийг хэрхэн ашиглах вэ

Энэ төсөлд Dockerfile байхгүй гэдгийг та анзаарсан байх. Тэдгээрийг жишээн дээр нэмээгүй, учир нь зарчмын хувьд бидэнд хэрэггүй, учир нь Waypoint бидний өмнөөс тэдэнд анхаарал тавих болно. Файлыг нарийвчлан авч үзье waypoint.hclюу хийхийг ойлгохын тулд:

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

Бүтээцийн үе шатанд Waypoint нь Cloud Native Buildpacks (NBC) төслийн програмчлалын хэлийг тодорхойлж, Dockerfile ашиглахгүйгээр Docker дүрс үүсгэх. Зарчмын хувьд энэ нь GitLab хэсэгчлэн ашигладаг технологи юм Auto DevOps Автомат бүтээх алхам дээр. CNCF-ийн CNB нь салбарын хэрэглэгчдийн дунд улам бүр түгээмэл болж байгааг харахад таатай байна.

Зургийг бүтээсний дараа Waypoint нь үүнийг манай AWS ECR бүртгэлд автоматаар байршуулж, хүргэхэд бэлэн болно. Барилга дууссаны дараа хүргэх алхамыг ашиглана AWS ECS нэмэлт Манай програмыг AWS бүртгэлдээ байрлуулах.

Миний зөөврийн компьютерээс - бүх зүйл энгийн. Би AWS бүртгэлдээ баталгаажуулсан Waypoint-г оруулсан бөгөөд энэ нь "зүгээр л ажилладаг". Гэхдээ би зөөврийн компьютерээсээ цааш явахыг хүсвэл яах вэ? Эсвэл би энэ суулгацыг CI/CD-ийн нэг хэсэг болгон автоматжуулахыг хүсэж байна уу? Энэ бол GitLab CI/CD орж ирдэг түүхийн хэсэг юм!

NB Хэрэв та зүгээр л CI/CD-г хэрэгжүүлэхээр төлөвлөж байгаа эсвэл шугам хоолой барих шилдэг туршлагыг хэрэгжүүлж эхлэхийг хүсч байгаа бол Slurm-ийн шинэ сургалтанд анхаарлаа хандуулаарай. “Жишээ нь Gitlab CI-г ашигласан CI/CD”. Одоо урьдчилсан захиалгын үнээр авах боломжтой.

GitLab CI/CD дэх зам цэг

Энэ бүгдийг GitLab CI/CD дээр зохион байгуулахын тулд файлдаа юу хэрэгтэй байгааг харцгаая. .gitlab-ci.yml:

  • Юуны өмнө та дотор нь ажиллуулахын тулд үндсэн зураг хэрэгтэй. Waypoint нь ямар ч Linux түгээлт дээр ажилладаг, түүнд зөвхөн Docker хэрэгтэй байдаг тул бид ерөнхий Docker дүрстэй ажиллах боломжтой.
  • Дараа нь та энэ зурган дээр Wapoint програмыг суулгах хэрэгтэй. Ирээдүйд бид цуглуулж магадгүй зургийн мета бүтээх мөн энэ үйл явцыг өөртөө зориул.
  • Эцэст нь бид Waypoint командуудыг ажиллуулна

Дээр дурдсан зүйлс нь суулгацыг дуусгахад шаардлагатай скриптүүдийг ажиллуулахад шаардлагатай бүх зүйлийг тодорхойлсон боловч AWS-д байршуулахын тулд бидэнд өөр нэг зүйл хэрэгтэй болно: бид AWS бүртгэлдээ нэвтэрсэн байх ёстой. Замын цэгийн тайлбарт төлөвлөгөө бий баталгаажуулалт ба зөвшөөрлийн тухай. HashiCorp мөн энэ долоо хоногт гайхалтай төсөл гаргасан Хил хязгаар. Гэхдээ одоохондоо бид баталгаажуулалт, зөвшөөрлийг өөрсдөө шийдэж чадна.

AWS дахь GitLab CICD баталгаажуулалтын хэд хэдэн сонголт байдаг. Эхний сонголт бол суулгацыг ашиглах явдал юм HashiCorp Vault. Хэрэв танай баг итгэмжлэлийн менежментэд Vault ашигладаг бол энэ нь маш сайн хэрэг. Хэрэв танай баг AWS IAM ашиглан зөвшөөрлийг удирдаж байгаа бол ажиллах өөр нэг сонголт бол хүргэх даалгаврууд хэрэгжиж байгаа эсэхийг шалгах явдал юм. GitLab Runner, IAM-ээр дамжуулан байршуулалтыг ажиллуулах эрхтэй. Гэхдээ хэрэв та зүгээр л Waypoint-тэй танилцахыг хүсч, үүнийг хурдан хийхийг хүсч байвал сүүлийн нэг сонголт байна - AWS API болон Нууц түлхүүрүүдийг GitLab CI/CD орчны хувьсагч AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Бүгдийг нь нийлүүлж байна

Баталгаажуулалтыг ойлгосны дараа бид эхэлж болно! Бидний финал .gitlab-ci.yml иймэрхүү харагдаж байна:

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

Бид зургаас эхэлж байгааг та харж байна docker:latest болон Waypoint-д шаардлагатай хэд хэдэн орчны хувьсагчийг тохируулна. Бүлэгт script Бид Waypoint программын хамгийн сүүлийн хувилбарыг татаж аваад суулгана /usr/local/bin. Манай гүйгч аль хэдийн AWS-д зөвшөөрөл авсан тул дараа нь бид зүгээр л гүйдэг waypoint init, build, deploy и release.

Бүтээх даалгаврын гаралт нь бидний програмыг гаргасан эцсийн цэгийг харуулах болно:

GitLab CI/CD-тэй хамтран ажиллахын тулд HashiCorp Waypoint-ийг хэрхэн ашиглах вэ

Замын цэгийн нэг олон тооны HashiCorp шийдлүүд, GitLab-тай маш сайн ажилладаг. Жишээлбэл, бид програмыг хүргэхээс гадна үндсэн дэд бүтцийг ашиглан зохион байгуулж болно GitLab дээрх Terraform. SDLC аюулгүй байдлыг стандартчилахын тулд бид бас хэрэгжүүлж болно Vault-тай GitLab CI/CD дамжуулах хоолой дахь нууц болон жетоныг удирдахад зориулагдсан бөгөөд хөгжүүлэлт, туршилт, үйлдвэрлэлийн ашиглалтын нууцын удирдлагад тулгуурладаг хөгжүүлэгчид болон администраторуудад зориулсан цогц шийдэл юм.

HashiCorp болон GitLab-ийн боловсруулсан хамтарсан шийдлүүд нь компаниудад хүргэх дамжуулах хоолой, дэд бүтцийн тогтвортой удирдлагаар хангах замаар програмуудыг хөгжүүлэх илүү сайн арга замыг олоход тусалдаг. Замын цэг нь зөв чиглэлд өөр нэг алхам хийсэн бөгөөд бид төслийн цаашдын хөгжлийг тэсэн ядан хүлээж байна. Та Waypoint-ийн талаар илүү ихийг олж мэдэх боломжтой энд, бас судлах нь зүйтэй баримт бичиг и хөгжлийн төлөвлөгөө төсөл. Бид олж авсан мэдлэгээ нэмсэн GitLab CICD баримт бичиг. Хэрэв та бүх зүйлийг өөрөө туршиж үзэхийг хүсч байвал бүрэн ажлын жишээг авч болно энэ агуулах.

Та CI/CD-ийн зарчмуудыг ойлгож, Gitlab CI-тэй ажиллах бүх нарийн ширийн зүйлийг эзэмшиж, видео хичээлд сууснаар шилдэг туршлагуудыг хэрэгжүүлж эхлэх боломжтой. “Жишээ нь Gitlab CI-г ашигласан CI/CD”. Бидэнтэй нэгд!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх