Cài đặt và cấu hình Jenkins trên CentOS/RHEL
Hướng dẫn từng bước cài đặt và cấu hình Jenkins trên CentOS/RHEL sử dụng DNF, bao gồm cài Java 17, cấu hình Docker permissions và khởi động dịch vụ.
Jenkins là một trong những công cụ CI/CD (Continuous Integration / Continuous Delivery) mã nguồn mở phổ biến nhất, giúp tự động hóa quá trình build, test và triển khai ứng dụng. Bài viết này hướng dẫn từng bước cài đặt và cấu hình Jenkins trên hệ điều hành CentOS/RHEL sử dụng trình quản lý gói DNF.
Yêu cầu
Hệ điều hành: CentOS 8/9 hoặc RHEL 8/9 (sử dụng DNF package manager)
Quyền root hoặc sudo: Cần quyền quản trị viên để cài đặt gói và quản lý dịch vụ
Kết nối Internet: Để tải về Jenkins và các phụ thuộc từ repository chính thức
Firewall: Mở cổng
8080(mặc định của Jenkins) nếu cần truy cập từ xa
Bước 1: Cài đặt Java 17 OpenJDK
Jenkins yêu cầu Java Runtime Environment (JRE) hoặc Java Development Kit (JDK) để hoạt động. Phiên bản Java 17 là lựa chọn LTS (Long-Term Support) được Jenkins khuyến nghị.
sudo dnf install -y java-17-openjdkSau khi cài đặt xong, kiểm tra phiên bản Java đã được kích hoạt:
java -versionKết quả mong đợi:
openjdk version "17.x.x" 2024-xx-xx LTS
OpenJDK Runtime Environment (build 17.x.x-lts)
OpenJDK 64-Bit Server VM (build 17.x.x-lts, mixed mode, sharing)Nếu hệ thống có nhiều phiên bản Java, sử dụng sudo alternatives --config java để chọn phiên bản Java 17 làm mặc định.
Bước 2: Thêm repository Jenkins
Để cài đặt Jenkins thông qua DNF, bạn cần thêm repository chính thức của Jenkins vào hệ thống.
Lệnh này tải file .repo từ repository chính thức và lưu vào /etc/yum.repos.d/, cho phép DNF nhận diện và cài đặt Jenkins như một gói hệ thống.
Bước 3: Import GPG key
Trước khi cài đặt, hệ thống cần import GPG key để xác thực tính toàn vẹn của gói Jenkins.
GPG key giúp đảm bảo rằng gói tin bạn tải về không bị giả mạo hoặc chứa mã độc. Đây là bước bảo mật quan trọng trong quy trình cài đặt phần mềm từ bên thứ ba.
Bước 4: Cài đặt Jenkins
Sau khi đã thêm repository và import GPG key, tiến hành cài đặt Jenkins.
Quá trình cài đặt sẽ tự động tải về Jenkins cùng các phụ thuộc cần thiết. Thời gian cài đặt phụ thuộc vào tốc độ kết nối Internet.
Jenkins được cài đặt mặc định trên cổng 8080. Nếu cổng này đang bị chiếm bởi dịch vụ khác, bạn cần thay đổi cấu hình trước khi khởi động Jenkins.
Bước 5: Bật và khởi động dịch vụ Jenkins
Sau khi cài đặt xong, kích hoạt và khởi động dịch vụ Jenkins bằng systemctl.
systemctl enable jenkins: Đảm bảo Jenkins tự động khởi động cùng hệ thống mỗi khi bootsystemctl start jenkins: Khởi động dịch vụ Jenkins ngay lập tức
Kiểm tra xem dịch vụ đã khởi động thành công:
Kết quả mong đợi hiển thị active (running) với màu xanh lá.
Bước 6: Lấy mật khẩu admin ban đầu
Khi Jenkins khởi động lần đầu tiên, hệ thống sẽ tạo một mật khẩu quản trị viên tạm thời để xác thực truy cập ban đầu.
Kết quả sẽ là một chuỗi ký tự dạng UUID, ví dụ:
Sao chép chuỗi này và truy cập Jenkins qua trình duyệt:
Dán mật khẩu vào trường Administrator password và nhấn Continue để hoàn tất quá trình cài đặt ban đầu.
Bước 7: Cấu hình quyền Docker cho Jenkins user
Nếu bạn sử dụng Jenkins để chạy các pipeline liên quan đến Docker, Jenkins user cần được thêm vào nhóm docker để có quyền truy cập Docker daemon.
usermod: Lệnh sửa đổi thông tin user trên Linux-aG: Thêm user vào nhóm bổ sung (-a= append,-G= group)docker: Nhóm quản lý quyền truy cập Docker daemon
Nếu bạn đã cài đặt Docker trên hệ thống nhưng chưa tạo nhóm docker, hãy chạy sudo groupadd docker trước khi thực hiện lệnh trên.
Bước 8: Kiểm tra thông tin user Jenkins
Sau khi thêm vào nhóm docker, kiểm tra để xác nhận thay đổi đã có hiệu lực.
Kết quả mong đợi:
Ngoài ra, bạn có thể sử dụng id để xem chi tiết hơn:
Kết quả mong đợi:
uid: ID người dùng Jenkinsgid: Nhóm chính của Jenkinsgroups: Danh sách tất cả các nhóm mà Jenkins thuộc về (bao gồmdocker)
Bước 9: Khởi động lại Jenkins
Để thay đổi quyền nhóm có hiệu lực đối với Jenkins, bạn cần khởi động lại dịch vụ.
Bước 10: Kiểm tra trạng thái dịch vụ
Sau khi khởi động lại, kiểm tra toàn bộ trạng thái để đảm bảo Jenkins hoạt động bình thường.
Kết quả mong đợi:
Các thông tin quan trọng cần chú ý:
Active: active (running): Dịch vụ đang hoạt động bình thườngLoaded: enabled: Dịch vụ được thiết lập tự động khởi động cùng hệ thốngMain PID: PID của tiến trình Jenkins chính
Ngoài ra, truy cập Jenkins qua trình duyệt để xác nhận giao diện hoạt động:
Tóm tắt nhanh các lệnh
Lưu ý quan trọng
Bảo mật: Mật khẩu admin ban đầu (initialAdminPassword) chỉ tồn tại tạm thời. Sau khi đăng nhập lần đầu, hãy xóa file này bằng sudo rm /var/lib/jenkins/secrets/initialAdminPassword để tăng cường bảo mật.
Firewall: Nếu bạn truy cập Jenkins từ xa, đảm bảo đã mở cổng 8080 trong firewall:
Cổng mặc định: Jenkins chạy trên cổng
8080. Để thay đổi, chỉnh sửa file/etc/sysconfig/jenkinsvà tìm dòngJENKINS_PORTThư mục làm việc: Thư mục gốc của Jenkins nằm tại
/var/lib/jenkins/Log file: Xem log Jenkins tại
/var/log/jenkins/jenkins.logkhi gặp sự cốQuản lý qua CLI: Jenkins cung cấp CLI tool để quản lý từ dòng lệnh, tham khảo tại Jenkins CLI Documentation
Tài liệu tham khảo
Cập nhật lần cuối