Trong quá trình phát triển phần mềm, có một khâu rất quan trọng đó là deploy sản phầm lên môi trường test, môi trường product. Việc thực hiện bằng tay sẽ làm tiêu tốn khá nhiều thời gian của bạn. Việc CI/CD ra đời sẽ giúp chúng ta tự động hóa 1 phần công việc. Hôm nay, vinasupport.com sẽ giới thiệu với các bạn về CI/CD và hướng dẫn triển khai nó trên GitLab.
CI/CD là gì?
CI/CD là gì? CI/CD với CI (Continuous Integration) và CD (Continuous Delivery), là quá trình tích hợp (integration) thường xuyên, nhanh chóng hơn khi code cũng như thường xuyên cập nhật phiên bản mới (delivery).
Triển khai CD/CD trên GitLab
Cài đặt GitLab Runner trên Ubuntu
Đầu tiên chúng ta download GitLab Runner. Bạn có thể tìm file cài đặt tại địa chỉ: https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html
VD: Download File cài đặt GitLab Runner cho HDH Ubuntu
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb"
Cài đặt GitLab Runner
sudo dpkg -i gitlab-runner_amd64.deb
Verify lại GitLab Runner
gitlab-runner verify
Đăng ký GitLab Runner
Tạo 1 project trên GitLab (Cái này các bạn tự tìm hiểu, nó rất đơn giản)
Lấy thông tin để đăng ký GitLab Runner
Các bạn vào Project vừa tạo => [ Settings ] => [ CI / CD ] => Expand mục “Runners“. Chúng ta sẽ có các thông số như sau:
- URL để đăng ký GitLab Runner
- Token
Trên máy chủ chúng ta thực hiện command để đăng ký GitLab Runner vào Project mà chúng ta vừa tạo.
sudo gitlab-runner register
- Enter thte GitLab instance URL: Nhập địa chỉ URL đăng ký GitLab ở bên trên
- Enter the registration token: Nhập Token ở bên trên
- Enter a description for the runner: Nhập miêu tả về runner
- Enter tags fỏ the runner: Điền tag gì cũng đc.
- Enter an executor: Ở đây mình chọn là shell
Kết quả sau khi đăng ký GitLab Runner
GitLab Runner đang ở trạng thái activated, nếu muốn tạm dựng bấm [ Pause ], còn nếu bạn muốn gỡ bỏ bấm [ Remove Runner ].
Bạn có thể đăng ký nhiều Runner cho 1 project. Khi có commit mới, dựa vào tags nó sẽ gọi đến runner tương ứng để chạy.
Cấu hình file .gilab-ci.yml
File .gitlab-ci.yml là 1 file config dưới dạng YAML, Tham khảo các tham số của file ở đâu: https://docs.gitlab.com/ee/ci/yaml/
Nội dung file giống như là:
# This file is a template, and might need editing before it works on your project. stages: - build - test - deploy build_code_job: stage: build script: - echo "Build Code" tags: - develop test_code_job: stage: test script: - echo "Test Code" tags: - develop deploy_code_job: stage: deploy script: - echo "We are vinasupport.com team" tags: - develop
Rồi sau đó đặt nó vào thư mục root của Project và commit nó lên:
git add .gitlab-ci.yml git commit -m "Add .gitlab-ci.yml" git push origin master
Khi nào có commit, GitLab Runner chạy Pipelines
Để kiểm tra log chạy, các bạn bấm vào chữ pass để xem chi tiết 1 Pipeline
Trong log của 1 job bạn sẽ tìm thấy thư mục GitLab Runner clone source code.
Thay đổi đường dẫn clone source
Mặc định đường dẫn checkout source tại: /home/gitlab-runner/builds
Nếu bạn muốn thay đổi đường dẫn này vui lòng sửa file: /etc/gitlab-runner/config.toml thêm tham số builds_dir như sau:
Sau khi sửa đường dẫn clone của Gitlab Runner thì bạn có thể bị lỗi permission. Vì gitlab runner mặc định sẽ chạy với user là gitlab-runner.
Vì vậy bạn có thể chown quyền của thư mục clone Hoặc thay đổi user chạỵ ở đường dẫn: /etc/systemd/system/gitlab-runner.service như sau:
Kết luận
Trên mạng có rất nhiều bài viết về CI/CD của GitLab nhưng thực sự mình thấy các bài viết đó đều viết không cẩn thận, ko đặt mình vào vị trí người đọc nên người dùng chưa biết gì dều khó khăn khi thực hiện. Nên mình viết bài này, hy vọng các bạn sẽ có 1 tài liệu triển khai CI/CD hoàn chỉnh. Nếu có bất cứ vấn đề gì chưa hiểu thì hãy bình luận bên dưới. Mình giải đáp các thắc mắc.
Nguồn: vinasupport.com