GitLab CI/CD là gì ? Hướng dẫn triển khai CI/CD Pipeline trên GitLab

GitLab CI/CD (Continuous Integration and Continuous Deployment/Delivery) là một phần không thể thiếu trong môi trường phát triển phần mềm hiện đại. Nó giúp tự động hóa quy trình phát triển từ việc xây dựng, kiểm thử cho đến triển khai ứng dụng, từ đó tăng cường chất lượng sản phẩm và hiệu suất làm việc của nhóm phát triển. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về GitLab CI/CD và cách triển khai nó một cách hiệu quả.

1. GitLab CI/CD là gì?

GitLab CI/CD là một tính năng của GitLab, nền tảng DevOps toàn diện, cho phép bạn quản lý toàn bộ vòng đời phát triển phần mềm. Nó cung cấp một bộ công cụ mạnh mẽ, giúp tự động hóa các quy trình phát triển phần mềm, bao gồm:

  1. Pipeline: Tập hợp các công việc (jobs) được thực hiện theo một trình tự nhất định. Mỗi pipeline có thể có nhiều giai đoạn (stages), và trong mỗi giai đoạn có thể có nhiều jobs.
  2. Job: Một đơn vị công việc cụ thể, như biên dịch mã nguồn hay chạy kiểm thử. Các jobs trong cùng một stage thường được thực hiện song song, trong khi các stages được thực hiện tuần tự.
  3. Runner: Các agent thực hiện các jobs. Bạn có thể sử dụng GitLab Runner trên máy chủ riêng hoặc sử dụng các runners có sẵn từ GitLab.
  4. .gitlab-ci.yml: Tệp cấu hình xác định cấu trúc của pipeline, stages và jobs. Đây là nơi để bạn định nghĩa các bước CI/CD cho dự án.

Giao diện GitLab CI/CDGiao diện GitLab CI/CD

2. Hướng dẫn triển khai CI/CD trên GitLab

Để triển khai CI/CD trên GitLab, bạn cần thực hiện các bước sau:

2.1 Cài đặt GitLab và GitLab Runner

  1. Cài đặt GitLab: Đầu tiên, bạn cần kéo về image GitLab và khởi động một container cho GitLab:

     docker pull gitlab/gitlab-ce
     docker network create gitlab-net
     docker run -d 
       --hostname localhost 
       -p 80:80 
       -p 443:443 
       -p 22:22 
       -e GITLAB_OMNIBUS_CONFIG="external_url 'http://localhost'" 
       --name gitlab 
       --network gitlab-net 
       gitlab/gitlab-ce

    Sau khi cài đặt, truy cập vào địa chỉ localhost và đăng nhập với tài khoản root cùng mật khẩu được lấy bằng lệnh:

     docker exec -it gitlab bash
     grep "Password:" /etc/gitlab/initial_root_password
  2. Cài đặt GitLab Runner: Kéo về và khởi động GitLab Runner:

     docker pull gitlab/gitlab-runner
     docker run -d --name gitlab-runner 
       --network=gitlab-net 
       -v /var/run/docker.sock:/var/run/docker.sock 
       gitlab/gitlab-runner:latest

2.2 Tạo mới một GitLab Repository

  1. Tạo Project mới: Đăng nhập vào GitLab và chọn Create a Project. Điền thông tin cần thiết và tạo project.

Tạo Repository trên GitLabTạo Repository trên GitLab

  1. Pushing mã nguồn: Tạo file index.htmlDockerfile, sau đó đưa chúng vào nhánh chính (main).

    index.html:

    <html>
        <body>
            <h1>200Lab Website</h1>
        </body>
    </html>

    Dockerfile:

    FROM nginx:1.18
    COPY index.html /usr/share/nginx/html

File cấu hình GitLabFile cấu hình GitLab

2.3 Cấu hình GitLab Runner

  1. Cấu hình runner: Vào mục Setting trên trang project và chọn CI/CD. Tại phần Runner, kích hoạt New project runner và nhớ tick chọn hộp cho phép run untagged job.

Cấu hình GitLab RunnerCấu hình GitLab Runner

  1. Đăng ký GitLab Runner: Sử dụng thông tin từ trang cấu hình và đăng ký runner với các tham số:

     docker exec -it gitlab-runner gitlab-runner register 
       --url http://gitlab 
       --registration-token <your_registration_token> 
       --executor docker 
       --docker-image "docker:stable" 
       --description "local-docker-runner" 
       --docker-volumes /var/run/docker.sock:/var/run/docker.sock

Đăng ký GitLab RunnerĐăng ký GitLab Runner

2.4 Cấu hình file GitLab CI

  1. Tạo file .gitlab-ci.yml: Tạo file này trong project với nội dung sau để định nghĩa các bước build và push image.

     stages:
       - publish
     variables:
       TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
       TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
     publish:
       image: docker:latest
       stage: publish
       services:
         - docker:dind
       script:
         - docker build -t $TAG_COMMIT -t $TAG_LATEST .
         - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
         - docker push $TAG_COMMIT
         - docker push $TAG_LATEST

Kết quả PipelineKết quả Pipeline

3. Kết luận

GitLab CI/CD mang đến những công cụ mạnh mẽ giúp tối ưu hóa quy trình phát triển phần mềm của bạn. Hy vọng bài hướng dẫn này hữu ích cho bạn trong việc thiết lập CI/CD trên GitLab. Tuy còn một số hạn chế trong quá trình cài đặt và cấu hình, nhưng với kiến thức này, bạn có thể bắt đầu củng cố quy trình phát triển của mình. Hãy theo dõi thêm tại comdy.vn để cập nhật nhiều thông tin bổ ích về marketing và công nghệ!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *