Cách sử dụng HashiCorp Waypoint để cộng tác với GitLab CI/CD

Cách sử dụng HashiCorp Waypoint để cộng tác với GitLab CI/CD

HashiCorp giới thiệu dự án mới Waypoint trên HashiCorp kỹ thuật số. Nó sử dụng tệp dựa trên HCL để mô tả việc xây dựng, vận chuyển và phát hành ứng dụng cho nhiều nền tảng đám mây khác nhau, từ Kubernetes đến AWS và Google Cloud Run. Hãy coi Waypoint như Terraform và Vagrant kết hợp với nhau để mô tả quá trình xây dựng, vận chuyển và phát hành ứng dụng của bạn.

Đúng như hình thức, HashiCorp đã phát hành Waypoint dưới dạng nguồn mở và đi kèm với rất nhiều ví dụ. Cấp độ của bộ điều phối tùy thuộc vào bạn, Waypoint là một tệp thực thi mà bạn có thể chạy trực tiếp trên máy tính xách tay hoặc từ công cụ điều phối CI/CD mà bạn chọn. Mục tiêu triển khai ứng dụng cũng tùy thuộc vào bạn vì Waypoint hỗ trợ Kubernetes, Docker, Google Cloud Run, AWS ECS, v.v.

Sau khi đọc điều tuyệt vời tài liệu và sang trọng nhất ví dụ ứng dụng do HashiCorp cung cấp, chúng tôi quyết định xem xét kỹ hơn cách phối hợp Waypoint với GitLab CI/CD. Để thực hiện việc này, chúng tôi sẽ lấy một ứng dụng Node.js đơn giản chạy trên AWS ECS từ kho lưu trữ mẫu.

Sau khi nhân bản kho lưu trữ, hãy xem cấu trúc của ứng dụng hiển thị một trang:

Cách sử dụng HashiCorp Waypoint để cộng tác với GitLab CI/CD

Như bạn có thể nhận thấy, không có Dockerfile trong dự án này. Chúng không được thêm vào ví dụ vì chúng ta không thực sự cần chúng, vì Waypoint sẽ xử lý chúng cho chúng ta. Chúng ta hãy xem xét kỹ hơn về tập tin waypoint.hclđể hiểu nó sẽ làm gì:

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

Trong giai đoạn xây dựng, Waypoint sử dụng Cloud Native Buildpacks (CNB) để xác định ngôn ngữ lập trình của dự án và tạo hình ảnh Docker mà không cần sử dụng Dockerfile. Về nguyên tắc, đây là công nghệ tương tự được GitLab sử dụng một phần Auto DevOps ở bước Auto Build. Thật tuyệt vời khi thấy CNB của CNCF ngày càng được nhiều người dùng trong ngành chấp nhận.

Sau khi hình ảnh được tạo, Waypoint sẽ tự động tải hình ảnh đó lên sổ đăng ký AWS ECR của chúng tôi để sẵn sàng xuất xưởng. Khi kết thúc quá trình lắp ráp, bước phân phối sử dụng Tiện ích bổ sung AWS ECS để triển khai ứng dụng của chúng tôi vào tài khoản AWS của chúng tôi.

Từ máy tính xách tay của tôi thật dễ dàng. Tôi đã đặt Waypoint đã được xác thực trong tài khoản AWS của mình và nó "chỉ hoạt động". Nhưng điều gì xảy ra nếu tôi muốn vượt ra ngoài máy tính xách tay của mình? Hoặc có thể tôi muốn tự động hóa quá trình triển khai này như một phần của quy trình CI/CD tổng thể, nơi chạy các thử nghiệm tích hợp, kiểm tra bảo mật và các thử nghiệm khác hiện tại của tôi? Đây là một phần câu chuyện về sự xuất hiện của GitLab CI/CD!

NB Nếu bạn mới dự định triển khai CI/CD hoặc muốn bắt đầu áp dụng các phương pháp hay nhất để xây dựng quy trình, hãy chú ý đến khóa học Slurm mới. "CI/CD trên ví dụ về Gitlab CI". Nó bây giờ đã có sẵn cho giá đặt hàng trước.

Điểm tham chiếu trong GitLab CI/CD

Để sắp xếp tất cả những điều này trong GitLab CI/CD, hãy xem những gì chúng tôi cần trong tệp của mình .gitlab-ci.yml:

  • Trước hết, bạn cần có một image cơ sở để chạy bên trong nó. Waypoint chạy trên mọi bản phân phối Linux, nó chỉ cần Docker nên chúng ta có thể chạy với Docker image chung.
  • Tiếp theo, bạn cần cài đặt Waypoint vào image này. Trong tương lai chúng tôi có thể thu thập hình ảnh xây dựng meta và chứa đựng quá trình này cho chính bạn.
  • Cuối cùng chúng ta sẽ chạy lệnh Waypoint

Trên đây là mọi thứ mà quy trình của chúng tôi sẽ cần để chạy các tập lệnh cần thiết nhằm thực hiện quá trình triển khai, nhưng để triển khai lên AWS, chúng tôi cần thêm một điều nữa: chúng tôi phải đăng nhập vào tài khoản AWS của mình. Trong mô tả Waypoint có kế hoạch về xác thực và ủy quyền. HashiCorp cũng ra mắt dự án ấn tượng trong tuần này Ranh giới. Nhưng hiện tại, chúng tôi chỉ có thể tự mình thực hiện và xử lý việc xác thực và ủy quyền.

Có một số tùy chọn để xác thực GitLab CICD trên AWS. Tùy chọn đầu tiên là sử dụng tính năng tích hợp sẵn Kho tiền HashiCorp. Sẽ không sao nếu nhóm của bạn đã sử dụng Vault để quản lý thông tin xác thực. Một phương pháp khác hiệu quả nếu nhóm của bạn quản lý ủy quyền bằng AWS IAM là kiểm tra xem các tác vụ phân phối có được kích hoạt thông qua Người chạy GitLabA được ủy quyền để bắt đầu triển khai thông qua IAM. Nhưng nếu bạn chỉ muốn làm quen với Waypoint và muốn thực hiện nhanh chóng thì tùy chọn cuối cùng là thêm API AWS và khóa Bí mật của bạn vào Biến môi trường GitLab CI/CD AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

Đặt tất cả lại với nhau

Khi chúng tôi đã tìm ra xác thực, chúng tôi có thể bắt đầu! trận chung kết của chúng tôi .gitlab-ci.yml Nó trông giống như thế này:

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

Bạn thấy chúng tôi bắt đầu với một hình ảnh docker:latest và đặt một số biến môi trường theo yêu cầu của Waypoint. Trong chuong script chúng tôi tải xuống phiên bản mới nhất của tệp thực thi Waypoint và cài đặt nó trong /usr/local/bin. Vì người chạy của chúng tôi đã được ủy quyền trong AWS nên tiếp theo chúng tôi chỉ cần chạy waypoint init, build, deploy и release.

Đầu ra của tác vụ xây dựng sẽ hiển thị cho chúng ta điểm cuối nơi chúng ta triển khai ứng dụng:

Cách sử dụng HashiCorp Waypoint để cộng tác với GitLab CI/CD

Điểm tham chiếu một trong nhiều giải pháp HashiCorp, hoạt động tốt với GitLab. Ví dụ: ngoài việc cung cấp ứng dụng, chúng tôi có thể phối hợp cơ sở hạ tầng cơ bản với Địa hình trong GitLab. Để chuẩn hóa bảo mật SDLC, chúng ta cũng có thể triển khai GitLab với Vault để quản lý bí mật và mã thông báo trong quy trình CI/CD, cung cấp giải pháp hoàn chỉnh cho nhà phát triển và quản trị viên dựa vào quản lý bí mật để phát triển, thử nghiệm và sử dụng sản xuất.

Các giải pháp chung do HashiCorp và GitLab phát triển giúp các công ty tìm ra cách tốt nhất để phát triển ứng dụng bằng cách đảm bảo quản lý cơ sở hạ tầng và chuỗi cung ứng nhất quán. Waypoint đã thực hiện thêm một bước đi đúng hướng và chúng tôi mong muốn dự án sẽ được phát triển hơn nữa. Bạn có thể tìm hiểu thêm về Waypoint đâycũng đáng để khám phá tài liệu и kế hoạch phát triển dự án. Chúng tôi đã bổ sung thêm kiến ​​thức đã thu được Tài liệu GitLab CICD. Nếu bạn muốn tự mình dùng thử, bạn có thể xem ví dụ hoạt động hoàn chỉnh tại kho lưu trữ này.

Bạn có thể hiểu các nguyên tắc của CI / CD, nắm vững tất cả những điều phức tạp khi làm việc với Gitlab CI và bắt đầu áp dụng các phương pháp hay nhất bằng cách hoàn thành khóa học video "CI/CD trên ví dụ về Gitlab CI"... Tham gia với chúng tôi!

Nguồn: www.habr.com

Thêm một lời nhận xét