Thời gian đọc: 11 phút
Jenkins là một công cụ tự động hóa phổ biến trong quá trình phát triển phần mềm, giúp bạn tự động hóa các quy trình tích hợp liên tục và triển khai liên tục (CI/CD). Cài đặt Jenkins trên Ubuntu có thể giúp bạn quản lý các nhiệm vụ phát triển phần mềm một cách hiệu quả, từ việc kiểm thử đến triển khai. Trong hướng dẫn này, chúng tôi sẽ cung cấp cho bạn các bước chi tiết để cài đặt và cấu hình Jenkins trên hệ điều hành Ubuntu, đảm bảo bạn có thể thiết lập một môi trường phát triển tự động hóa mạnh mẽ và linh hoạt. Dù bạn là người mới bắt đầu hay đã có kinh nghiệm, hướng dẫn này sẽ giúp bạn triển khai Jenkins một cách dễ dàng và nhanh chóng.
Để cài đặt Jenkins trên Ubuntu, bạn có thể làm theo các bước chi tiết dưới đây. Jenkins là một công cụ tự động hóa mã nguồn mở, thường được sử dụng để tự động hoá các quy trình phát triển phần mềm, như tích hợp liên tục (CI) và triển khai liên tục (CD).
Trước tiên, bạn nên cập nhật hệ thống Ubuntu để đảm bảo rằng mọi gói phần mềm đều ở phiên bản mới nhất.
sudo apt update
sudo apt upgrade
Jenkins yêu cầu Java để chạy. Bạn có thể cài đặt OpenJDK (phiên bản Java mã nguồn mở) bằng lệnh sau:
sudo apt install openjdk-11-jdk
Sau khi cài đặt, kiểm tra phiên bản Java để chắc chắn Java đã được cài đặt đúng cách:
java -version
Bạn sẽ thấy kết quả tương tự như:
openjdk version "11.0.XX"
Ubuntu không bao gồm Jenkins trong kho lưu trữ mặc định, vì vậy bạn cần thêm kho lưu trữ của Jenkins.
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
Bây giờ, bạn có thể cập nhật danh sách gói và cài đặt Jenkins:
sudo apt update
sudo apt install jenkins
Sau khi cài đặt, khởi động dịch vụ Jenkins và thiết lập cho Jenkins tự động khởi động cùng hệ thống:
sudo systemctl start jenkins
sudo systemctl enable jenkins
Kiểm tra trạng thái của Jenkins để đảm bảo rằng nó đang chạy:
sudo systemctl status jenkins
Mặc định, Jenkins chạy trên cổng 8080. Nếu bạn đang sử dụng tường lửa ufw, hãy đảm bảo rằng bạn đã cho phép cổng này.
Mở cổng 8080:
sudo ufw allow 8080
Nếu bạn muốn cho phép tất cả lưu lượng HTTP và HTTPS, bạn có thể sử dụng:
sudo ufw allow 'OpenSSH'
sudo ufw allow 'Apache Full'
Kích hoạt tường lửa (nếu nó chưa được kích hoạt):
sudo ufw enable
Mở trình duyệt web và truy cập Jenkins bằng địa chỉ IP của bạn hoặc localhost
với cổng 8080:
http://your_server_ip_or_domain:8080
Hoặc, nếu bạn cài đặt Jenkins trên máy tính cá nhân:
http://localhost:8080
Khi truy cập lần đầu, Jenkins sẽ yêu cầu bạn nhập mật khẩu quản trị viên (admin) ban đầu.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Sau khi nhập mật khẩu, bạn sẽ được dẫn tới màn hình thiết lập Jenkins.
Sau khi nhập mật khẩu quản trị ban đầu, bạn sẽ được đưa tới trang “Customize Jenkins”. Ở đây bạn có hai lựa chọn:
Trong hầu hết các trường hợp, bạn nên chọn “Install suggested plugins”, điều này sẽ cài đặt các plugin cơ bản cần thiết để bắt đầu.
Jenkins sẽ tải và cài đặt các plugin cần thiết. Quá trình này có thể mất vài phút, tùy thuộc vào tốc độ mạng và tài nguyên hệ thống.
Sau khi các plugin đã được cài đặt thành công, bạn sẽ được chuyển hướng tới trang “Create First Admin User”. Tại đây, bạn cần tạo một tài khoản quản trị mới cho Jenkins.
Sau khi nhập đầy đủ thông tin, nhấn nút Save and Continue để tiếp tục.
Trong bước tiếp theo, Jenkins sẽ hỏi bạn về địa chỉ URL mặc định mà nó sẽ sử dụng. Mặc định Jenkins sẽ tự điền URL dựa trên thiết lập của bạn (thường là http://localhost:8080
nếu bạn đang chạy Jenkins trên máy tính cá nhân).
Nếu bạn có ý định truy cập Jenkins từ xa, bạn nên thay đổi URL này thành địa chỉ IP hoặc tên miền của server Jenkins.
Sau khi kiểm tra hoặc thay đổi địa chỉ URL, nhấn nút Save and Finish.
Sau khi hoàn thành bước thiết lập địa chỉ URL, bạn sẽ thấy thông báo “Jenkins is ready!”. Tại đây, bạn có thể nhấn nút Start using Jenkins để chuyển đến bảng điều khiển chính của Jenkins.
Sau khi cài đặt Jenkins xong, bạn có thể thực hiện thêm một số cấu hình bảo mật và tùy chỉnh để bảo vệ hệ thống Jenkins của mình.
Thiết lập HTTPS cho Jenkins:
sudo apt install nginx
Cấu hình Jenkins trên Nginx:
sudo nano /etc/nginx/sites-available/jenkins
Thêm vào cấu hình như sau:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Bật cấu hình và khởi động lại Nginx:
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Jenkins có một kho plugin phong phú để hỗ trợ nhiều công cụ và dịch vụ khác nhau trong quá trình phát triển phần mềm. Sau đây là một số plugin phổ biến:
Để cài đặt plugin:
Để Jenkins tự động chạy các job khi có thay đổi trong mã nguồn, bạn cần tích hợp nó với hệ thống kiểm soát phiên bản (VCS) như GitHub, GitLab, hoặc Bitbucket.
GitHub Integration:
Cài đặt plugin GitHub Integration hoặc Git Plugin.
Thiết lập webhook từ GitHub để Jenkins tự động khởi chạy job khi có commit mới.
Webhook có thể được thiết lập trong phần Settings của repository GitHub, dưới mục Webhooks.
Jenkins Pipeline là một cách mạnh mẽ để tự động hóa quy trình CI/CD từ đầu đến cuối. Bạn có thể tạo một pipeline bằng cách viết file Jenkinsfile trong repository của bạn để định nghĩa các bước trong quy trình build và deploy.
Ví dụ về một Jenkinsfile đơn giản:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
}
stage('Test') {
steps {
echo 'Testing...'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
}
}
}
}
Sau khi đã hoàn thành tất cả các bước trên, bạn đã cài đặt thành công Jenkins và thiết lập các bước cơ bản, đồng thời có nhiều tùy chọn cấu hình nâng cao như bảo mật, sao lưu, và tích hợp với các hệ thống kiểm soát mã nguồn. Bạn cũng có thể bắt đầu sử dụng Jenkins để tự động hóa quy trình CI/CD cho các dự án của mình.
Sau khi hoàn tất các bước cài đặt và cấu hình bảo mật cho Jenkins, bạn đã thiết lập được một hệ thống CI/CD mạnh mẽ và an toàn. Việc sử dụng HTTPS và reverse proxy thông qua Nginx hoặc Apache giúp bảo vệ thông tin nhạy cảm và tăng cường bảo mật cho hệ thống. Với Jenkins, bạn có thể quản lý các quy trình tự động hóa phát triển phần mềm một cách hiệu quả, từ việc build đến kiểm thử và triển khai. Bằng cách tiếp tục tinh chỉnh và bổ sung các plugin phù hợp, bạn sẽ tối ưu hóa được khả năng của Jenkins, giúp hệ thống của mình hoạt động một cách mượt mà và đáng tin cậy.