Hướng Dẫn Cài Đặt GitLab Runner Với Docker Cho Người Mới
Hướng dẫn từng bước cách cài đặt và cấu hình GitLab Runner bằng Docker trên máy chủ (EC2/VPS). Giải pháp hoàn hảo giúp tự động hóa quy trình CI/CD dễ hiểu cho cả người không chuyên kỹ thuật.
Bạn đang có một dự án phần mềm mất rất nhiều thời gian để “build” (đóng gói) và bạn phải làm việc này thường xuyên? Bạn đang sử dụng GitLab và bị giới hạn thời gian chạy miễn phí của các Shared Runners (máy chủ chạy tự động của GitLab)?
Đừng lo lắng! Trong bài viết này, TechCoBan sẽ hướng dẫn bạn cách tự tạo một máy chủ chạy tự động của riêng mình, gọi là GitLab Runner, bằng Docker trên một máy chủ (chẳng hạn như AWS EC2 hoặc một VPS bất kỳ). Bài viết được viết cực kỳ dễ hiểu, ngay cả khi bạn không phải là một chuyên gia kỹ thuật!
1. Chuẩn bị: Cài đặt Docker trên máy chủ
Docker là một công cụ giúp bạn chạy các phần mềm trong một môi trường độc lập (gọi là container), giúp việc cài đặt trở nên vô cùng đơn giản.
Đầu tiên, bạn cần kết nối vào máy chủ của mình và chạy các lệnh sau để cài đặt Docker:
sudo apt update
sudo apt install -y docker.io
Tiếp theo, hãy cấp quyền cho tài khoản hiện tại (ví dụ: ubuntu) được phép sử dụng Docker mà không cần phải gõ mật khẩu sudo mỗi lần:
sudo gpasswd -a ubuntu docker
Lưu ý: Sau khi chạy lệnh này, bạn cần thoát khỏi máy chủ và đăng nhập lại để thay đổi có hiệu lực.
2. Khởi chạy GitLab Runner bằng Docker
Bây giờ chúng ta sẽ khởi chạy ứng dụng GitLab Runner bằng Docker. Hãy chạy đoạn lệnh dưới đây:
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
Giải thích một chút cho bạn dễ hiểu:
--name gitlab-runner: Đặt tên cho ứng dụng làgitlab-runner.--restart always: Đảm bảo rằng ứng dụng này sẽ luôn tự động chạy lại nếu máy chủ bị khởi động lại.- Các dòng
-v: Đây là cách chúng ta lưu trữ lại dữ liệu cấu hình để không bị mất khi ứng dụng tắt đi.
3. Lấy mã bảo mật (Token) từ GitLab
Để máy chủ của bạn có thể nói chuyện được với dự án trên GitLab, bạn cần một mã bảo mật gọi là Token.
Cách lấy Token:
- Mở trang web GitLab, đi tới dự án hoặc nhóm dự án của bạn.
- Nhấn vào Settings (Cài đặt) > CI/CD.
- Tìm đến phần Runners và bấm mở rộng (Expand).
- Ở phần “Set up a specific Runner manually”, hãy copy đoạn mã Token hiển thị ở đó.
4. Kết nối (Register) Runner với GitLab
Bây giờ, chúng ta sẽ bảo máy chủ của bạn kết nối với GitLab thông qua mã Token vừa lấy.
Chạy lệnh sau:
docker exec -it gitlab-runner gitlab-runner register
(Lưu ý: Nếu quy trình của bạn cần dùng Docker bên trong Docker, ví dụ như để build các Docker image, hãy thêm cờ --docker-privileged vào cuối lệnh).
Hệ thống sẽ hỏi bạn một số thông tin, hãy nhập như sau:
- Coordinator URL: Nhập
https://gitlab.com/(Hoặc đường dẫn GitLab riêng của công ty bạn). - Token: Dán đoạn mã Token bạn vừa copy ở Bước 3 vào đây.
- Description: Viết một đoạn mô tả ngắn gọn (vd: “Runner cua toi”).
- Tags: Có thể để trống rồi nhấn Enter.
- Executor: Nhập
docker. Đây là cách hệ thống sẽ chạy các lệnh tự động. - Default Docker image: Nhập
alpine:latesthoặcubuntu:latest. Đây là hệ điều hành cơ bản sẽ được dùng nếu bạn không chỉ định gì khác.
Sau khi đăng ký thành công, hãy khởi động lại ứng dụng để chắc chắn mọi thứ hoạt động:
docker restart gitlab-runner
Quay lại trang Settings > CI/CD trên GitLab, bạn sẽ thấy Runner mới của bạn đã xuất hiện và sẵn sàng làm việc!
5. Các lệnh quản lý GitLab Runner cơ bản
Dưới đây là một số lệnh thường dùng để bạn quản lý ứng dụng Runner của mình:
Xem danh sách các Runner đang hoạt động:
docker exec -it gitlab-runner gitlab-runner list
Dừng lại (Stop), Bắt đầu (Start) và Khởi động lại (Restart):
docker exec -it gitlab-runner gitlab-runner stop
docker exec -it gitlab-runner gitlab-runner start
docker exec -it gitlab-runner gitlab-runner restart
Xóa (Hủy kết nối) một Runner:
Nếu bạn không muốn dùng Runner này nữa, bạn có thể hủy kết nối bằng tên của nó (thay TEN_RUNNER_CUA_BAN bằng tên thực tế):
docker exec -it gitlab-runner gitlab-runner unregister --name TEN_RUNNER_CUA_BAN
Nếu bạn đã xóa nó trên giao diện web GitLab trước, lệnh trên có thể bị lỗi. Trong trường hợp đó, hãy dùng lệnh dọn dẹp này:
docker exec -it gitlab-runner gitlab-runner verify --delete
6. Mẹo dọn dẹp bộ nhớ máy chủ tự động
Vì Runner sẽ tải về và chạy rất nhiều thứ, bộ nhớ máy chủ của bạn sẽ nhanh chóng bị đầy. Để giải quyết, chúng ta có thể thiết lập hệ thống tự động xóa các dữ liệu rác (cron jobs).
Mở trình soạn thảo lịch trình trên máy chủ (chạy lệnh crontab -e) và thêm hai dòng sau vào cuối:
0 * * * * docker system prune -a --force
5 * * * * docker volume prune -a --force
Hai lệnh này sẽ tự động xóa các file tạm và dữ liệu thừa của Docker mỗi giờ một lần, giúp máy chủ của bạn luôn nhẹ nhàng và không bao giờ bị báo đầy ổ cứng.
Tổng kết
Chúc mừng bạn! Bằng việc tự cài đặt GitLab Runner của riêng mình, bạn đã không còn bị giới hạn bởi thời gian chạy miễn phí của GitLab nữa. Bạn có thể thoải mái để máy chủ chạy các quy trình tự động hóa (CI/CD) cả ngày mà không phải lo nghĩ.
Hy vọng bài viết này của TechCoBan đã giúp bạn, kể cả khi bạn không phải là một chuyên gia kỹ thuật, cũng có thể tự thiết lập được. Chúc bạn thành công!
Bình luận
Bài viết liên quan
Tạo chứng chỉ SSL Wildcard cho Subdomain với Cloudflare và Docker
Hướng dẫn chi tiết cách tạo chứng chỉ SSL Wildcard miễn phí từ Let's Encrypt cho mọi Subdomain tự động thông qua DNS Challenge của Cloudflare và Docker.
Xây dựng CI/CD Pipeline tự động với GitHub Actions
Học cách thiết lập hệ thống Tích hợp liên tục (CI) và Phân phối liên tục (CD) tự động hoàn toàn bằng GitHub Actions.
Hướng dẫn cài đặt và sử dụng Rancher toàn tập cho người mới
Rancher là gì? Hướng dẫn chi tiết cách cài đặt và sử dụng Rancher bằng Docker Compose để quản lý các cluster Kubernetes một cách hiệu quả và trực quan nhất.