Hướng dẫn Setup Jenkins cho hệ thống Monolith - Bài 3: Cài đặt Jenkins trên máy chủ Linux (Ubuntu/CentOS) sử dụng Docker
1. Tại sao nên cài đặt Jenkins bằng Docker?
Trước đây, người ta thường cài trực tiếp Jenkins (WAR file hoặc package .deb/.rpm) lên hệ điều hành. Tuy nhiên, cách này có nhược điểm lớn: Jenkins sẽ phụ thuộc trực tiếp vào phiên bản Java của hệ thống, khó quản lý các công cụ build đi kèm, và khi muốn nâng cấp hoặc gỡ bỏ rất dễ gây rắc rối.
Việc sử dụng Docker mang lại các lợi ích tuyệt đối:
-
Cô lập hoàn toàn: Jenkins chạy bên trong một Container độc lập, không làm ảnh hưởng đến hệ điều hành gốc của máy chủ.
-
Dễ dàng quản lý và backup: Toàn bộ dữ liệu cấu hình (JENKINS_HOME) được mount ra thư mục bên ngoài máy chủ, việc sao lưu hay di dời server chỉ diễn ra trong vài nốt nhạc.
-
Triển khai nhanh: Chỉ với một lệnh
docker runhoặcdocker-compose, bạn đã có một môi trường Jenkins hoàn chỉnh.
2. Chuẩn bị trước khi cài đặt trên Linux (Ubuntu/CentOS)
Đảm bảo máy chủ Linux của bạn đã được cài đặt sẵn Docker và Docker Compose. Bạn có thể kiểm tra nhanh bằng lệnh:
Bash
docker --version
docker compose version
3. Các bước cài đặt Jenkins bằng Docker Compose (Khuyên dùng)
Thay vì gõ một câu lệnh docker run dài dằng dặc, việc sử dụng docker-compose.yml giúp quản lý container chuyên nghiệp hơn rất nhiều, cực kỳ phù hợp cho hệ thống Monolith cần độ ổn định cao.
Bước 1: Tạo thư mục chứa cấu hình Jenkins trên máy chủ
Bash
mkdir -p /opt/jenkins && cd /opt/jenkins
Bước 2: Tạo file docker-compose.yml
Tạo file cấu hình bằng trình soạn thảo (ví dụ: nano docker-compose.yml) và dán nội dung sau vào:
YAML
version: '3.8'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins-master
restart: unless-stopped
user: root
ports:
- "8080:8080"
- "50000:50000"
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
environment:
- JAVA_OPTS=-Djenkins.install.runSetupWizard=true
volumes:
jenkins_home:
external: false
-
Điểm lưu ý kỹ thuật:
-
- /var/run/docker.sock:/var/run/docker.sock: Cho phép Jenkins bên trong container có thể giao tiếp với Docker daemon của máy chủ host (giúp Jenkins có khả năng build các Docker image cho ứng dụng Monolith sau này - gọi là mô hình Docker-in-Docker hoặc Docker socket binding). -
user: root: Giúp Jenkins container có đủ quyền thực thi các lệnh hệ thống khi cần thiết.
-
Bước 3: Khởi động container Jenkins
Chạy lệnh sau tại thư mục chứa file docker-compose.yml:
Bash
docker compose up -d
Kiểm tra xem container đã chạy mượt mà chưa:
Bash
docker ps
4. Truy cập và lấy mật khẩu khởi tạo lần đầu (Unlock Jenkins)
-
Mở trình duyệt và truy cập vào địa chỉ:
http://<IP_MAY_CHU_LINUX>:8080 -
Màn hình yêu cầu nhập Administrator password sẽ xuất hiện. Để lấy đoạn mật khẩu này, bạn chạy lệnh sau trên terminal của máy chủ:
Bash
docker exec -it jenkins-master cat /var/jenkins_home/secrets/initialAdminPassword -
Copy chuỗi ký tự xuất hiện trên màn hình, dán vào giao diện web để tiếp tục.
All rights reserved