Gitlab runner, một thành phần không thể thiếu trong hệ thống CI/CD của Gitlab. Trong bài viết này sẽ hướng dẫn cách bạn cài đặt 1 runner trên hệ điều hành Ubuntu.
- Phần 1: Giới thiệu tổng quan về Gitlab Runner
- Phần 2: Các loại Runner Executor trong Gitlab CI
- Phần 3: Hướng dẫn cài đặt Gitlab Runner trên Centos
- Phần 3: Hướng dẫn cài đặt Gitlab Runner trên Windows
- Phần 3: Hướng dẫn cài đặt Gitlab Runner trên macOS
- Phần 4: Các thành phần cơ bản trong file “.gitlab-ci.yml”
- Phần 5: Tạo Docker image với Gitlab Runner
- Phần 6: Deploy AWS Lambda với Gitlab-CI và Serverless Framework
Điều kiện bắt buộc #
Để có thể tải về gói cài đặt của runner, người dùng cần phải cài đặt dịch vụ “curl” để tải về bản cài đặt mới nhất do Gitlab phát hành. Hiện tại các bản cài đặt đang sử dụng dịch vụ lưu trữ trên AWS – AWS S3.
sudo apt update
sudo apt insall -y curl
Cài đặt Gitlab runner #
Tải bản cài đặt #
Như đã đề cập ở phần “Điều kiện bắt buộc”, hiện tại các bản cài đặt đang được lưu trữ trên AWS, người dùng có thể tải các bản cài đặt của Gitlab runner hoàn toàn miễn phí.
CPU x86/amd64 #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"
CPU arm #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm"
CPU arm64 #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64"
CPU i386 #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386"
CPU s390x #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-s390x"
CPU ppc64le #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-ppc64le"
CPU x86-64 FIPS #
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64-fips"
Cấp quyền thực thi cho tập tin cài đặt #
Mặc định sau khi tải về thì tập tin cài đặt chưa có quyền thực thi, chúng ta cần phải cấp quyền thực thi để có thể tiến hành các bước cài đặt sau đó.
sudo chmod +x /usr/local/bin/gitlab-runner
Tạo user #
Để đảm bảo yếu tố bảo mật và dễ dàng trong việc quản lý, người dùng cần tạo thêm một tài khoản để sử dụng cho mục đích CI/CD với runner.
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
Cài đặt Gitlab runner #
Sau khi đã thực hiện việc tạo tài khoản và cấp quyền thực thư cho tập tin cài đặt, người dùng chỉ cần thực hiện 2 câu lệnh bên dưới để tiến hành cài đặt + khởi chạy runner trên máy chủ
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Đăng ký runner với Repository #
Sau khi đã hoàn tất việc cài đặt runner trên máy chủ của mình, việc tiếp theo là đăng ký runner với Gitlab server. Việc này giúp runner có thể nhận các “job” đang cần được xử lý từ Gitlab server. Nếu không có bước này thì các “job” sẽ không được lý bởi runner đã được cài đặt trước đó.
sudo gitlab-runner register --url <URL của Gitlab> \
--registration-token <token> \
--description "<description>" \
--tag-list "<tag>" \
--executor "<executor>" \
--run-untagged="<boolean>" \
--docker-image <docker-image:tag>
Trong đó:
- <URL của Gitlab>: là URL dùng để truy cập Gitlab server
- <token>: Token của dự án / repository. Bạn có thể lấy thông tin này từ phần Settings / CI/CD / Runners (chi tiết ảnh bên dưới)
- <description>: Mô tả thông tin về runner
- <tag>: Danh sách các “tag” công việc sẽ được xử lý bởi runner
- <executor>: Loại executor sẽ được sử dụng để xử lý bởi runner. (Bạn có thể xem lại bài viết về các executor tại đây)
- –run-untagged=”<boolean>”: cho phép runner xử lý các “job” không đánh tag hay không. Chọn true/false ở giá trị này
- <docker-image:tag>: Nếu bạn sử dụng executor là “Docker” thì đây sẽ là “default image” cho executor mỗi khi xử lý job nếu như người dùng không quy định “image” sẽ được dùng để xử lý “job”
Nguồn tham khảo: Gitlab
Trung tâm đào tạo Viễn thông và Công nghệ thông tin TEL4VN (TEL4VN) chuyên đào tạo các khóa học về DevOps như: Docker, Kubernetes, Ansible, Jenkins, Linux…….Ngoài ra, TEL4VN còn là Trung tâm đào tạo duy nhất về VoIP mã nguồn mở. 🌐Website: https://tel4vn.edu.vn/ |