0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Triển Khai Runner Tự Host cho Github Actions tại Máy Tính Cá Nhân

Đăng vào 1 tháng trước

• 3 phút đọc

Giới Thiệu

Trong các bài viết trước, chúng ta đã khám phá về Github Actions, một công cụ tuyệt vời trong việc tự động hóa các quy trình phát triển phần mềm. Trong bài viết này, chúng ta sẽ tập trung vào việc triển khai các self-hosted runners trên máy tính cá nhân, giúp tối ưu hóa chi phí và tăng cường kiểm soát cho các quy trình CI/CD của bạn.

Lợi Ích của Self-hosted Runners

Self-hosted runners cho phép bạn quản lý và chạy các runner cho Github Actions ngay trên hệ thống của mình. Điều này giúp giảm thiểu chi phí khi bạn cần sử dụng các runner lớn mà không được miễn phí. Bằng cách này, bạn có thể tận dụng tối đa nguồn lực của mình mà không phải trả thêm phí cho Github.

Các Công Cụ Cần Thiết

Để triển khai thành công một cụm Github Actions self-hosted runner, bạn cần bốn công cụ chính:

  1. Docker: Nền tảng ảo hóa giúp đóng gói và chạy các ứng dụng trong môi trường cô lập, giúp bạn dễ dàng quản lý và triển khai các runner.
  2. Kind (Kubernetes in Docker): Cho phép chạy Kubernetes cục bộ bằng cách sử dụng các container Docker.
  3. Helm: Công cụ quản lý gói cho Kubernetes, giúp dễ dàng triển khai và quản lý các ứng dụng Kubernetes.
  4. Actions Runner Controller (ARC): Công cụ quản lý tự động các runner cho Github Actions trên Kubernetes, giúp tự động mở rộng và tối ưu tài nguyên.

Chuẩn Bị Môi Trường K8s

Trước tiên, bạn cần chuẩn bị một cụm Kubernetes bằng Kind với cấu hình sau:

yaml Copy
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
  - role: worker

Chạy lệnh sau để tạo cụm:

bash Copy
kind create cluster --config ~/workspace/k8s-demo/kind-config.yaml

Kiểm tra cấu hình với lệnh:

bash Copy
kubectl get node

Triển Khai Actions Runner Controller

Sau khi có cụm Kubernetes, bạn tiến hành triển khai Actions Runner Controller (ARC) để quản lý các runner tự host. Sử dụng Helm để cài đặt với lệnh sau:

bash Copy
helm upgrade --install -n arc-systems --create-namespace arc oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller -f gha-arc.values.yaml

Kiểm tra xem ARC đã được triển khai thành công hay chưa bằng lệnh:

bash Copy
kubectl get pod -n arc-systems

Triển Khai Self-hosted Runner qua Actions Runner Scale Set

Actions Runner Scale Set giúp quản lý và tự động mở rộng jumlah runner. Tạo file cấu hình Helm cho Scale Set và chạy lệnh sau để triển khai:

bash Copy
helm upgrade --install -n arc-runners --create-namespace arc-runners oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set --version=0.9.3 -f arc-scaleset.values.yaml

Sau khi triển khai, bạn có thể kiểm tra trạng thái của các pod:

bash Copy
kubectl get pod -n arc-systems 
kubectl get pod -n arc-runners

Kiểm Tra Thành Quả Trên Github

Cuối cùng, truy cập vào cấu hình trên Github tại đường link https://github.com/<org-name>/gha-test/settings/actions/runners để kiểm tra các self-hosted runners của bạn. Tiến hành thử nghiệm một workflow cơ bản để xác thực rằng self-hosted runner hoạt động chính xác.

yaml Copy
name: CI

on:
  push:
    paths: .github/workflows/blank.yml
  pull_request:
  workflow_dispatch:

jobs:
  self_hosted:
    runs-on: arc-runners
    steps:
      - uses: actions/checkout@v3
      - name: Hello from Self-hosted Runner
        run: echo "Hello from Self-hosted Runner"

Kết Luận

Bạn đã hoàn thành việc triển khai self-hosted runner cho Github Actions trên máy tính cá nhân. Việc sử dụng self-hosted runners mang lại sự linh hoạt và giảm chi phí tối đa cho quy trình CI/CD của bạn. Hãy tiếp tục theo dõi, tối ưu cấu hình của bạn để đạt hiệu quả tốt nhất trong các dự án phần mềm của mình.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào