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).

Bước 1: Cập nhật hệ thống

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

Bước 2: Cài đặt Java

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"

Bước 3: Thêm kho lưu trữ Jenkins

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.

  1. Thêm khóa GPG cho Jenkins:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -

  1. Thêm kho lưu trữ của Jenkins vào hệ thống:
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Bước 4: Cài đặt Jenkins

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

Bước 5: Khởi động và kiểm tra 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

Bước 6: Cấu hình tường lửa

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

Bước 7: Truy cập Jenkins

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

Bước 8: Lấy mật khẩu Admin ban đầu

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.

  1. Để lấy mật khẩu này, chạy lệnh sau:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

  1. Sao chép mật khẩu xuất ra và dán vào trang cấu hình Jenkins.

Bước 9: Hoàn tất cài đặt Jenkins

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.

  • Install suggested plugins: Chọn tùy chọn này để cài đặt các plugin phổ biến.
  • Create First Admin User: Sau khi cài đặt plugin, tạo người dùng admin của riêng bạn.
  • Hoàn tất quá trình cấu hình và Jenkins sẽ sẵn sàng để sử dụng.

Bước 9.1: Cài đặt các plugin đề xuất (Install Suggested Plugins)

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:

  • Install suggested plugins: Jenkins sẽ tự động cài đặt các plugin phổ biến và được khuyến nghị sử dụng trong hầu hết các trường hợp.
  • Select plugins to install: Bạn có thể tự chọn plugin tùy theo nhu cầu.

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.

Bước 9.2: Tạo người dùng quản trị đầu tiên

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.

  • Username: Tên người dùng bạn muốn (ví dụ: admin).
  • Password: Mật khẩu bạn muốn sử dụng.
  • Confirm password: Nhập lại mật khẩu.
  • Full name: Tên đầy đủ của người dùng.
  • Email address: Địa chỉ email của bạn.

Sau khi nhập đầy đủ thông tin, nhấn nút Save and Continue để tiếp tục.

Bước 9.3: Thiết lập địa chỉ URL cho Jenkins

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.

Bước 9.4: Hoàn tất cài đặt

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.

Bước 9.5: Kiểm tra và sử dụng Jenkins

  • Bây giờ bạn đã đăng nhập thành công vào Jenkins với tài khoản quản trị mới tạo.
  • Trên bảng điều khiển chính, bạn có thể bắt đầu tạo các “job” (công việc) CI/CD, quản lý plugin, cài đặt môi trường, và nhiều hơn nữa.

Bước 10: Thiết lập bảo mật và cấu hình nâng cao (Tùy chọn)

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.

  • Cài đặt HTTPS: Bạn có thể cấu hình Jenkins để sử dụng HTTPS bằng cách cài đặt SSL/TLS.
  • Sao lưu dữ liệu: Sử dụng plugin để sao lưu dữ liệu Jenkins định kỳ.
  • Cấu hình email: Thiết lập máy chủ email để nhận thông báo về các job và cảnh báo.

Bước 11: Cấu hình bảo mật bổ sung (Tùy chọn)

Thiết lập HTTPS cho Jenkins:

  • Nếu bạn cài đặt Jenkins trên một máy chủ công cộng, việc sử dụng HTTPS là rất quan trọng để bảo mật các thông tin nhạy cảm như thông tin đăng nhập và dữ liệu chuyển giao.

  • Bạn có thể sử dụng nginx hoặc Apache làm reverse proxy cho Jenkins và cấu hình HTTPS với chứng chỉ SSL từ Let’s Encrypt.
Ví dụ sử dụng Nginx:

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

Bước 12: Cài đặt và quản lý plugin Jenkins

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:

  • Git Plugin: Tích hợp với Git, hỗ trợ truy cập các repository Git.
  • Pipeline Plugin: Tạo các pipeline phức tạp để tự động hóa quy trình CI/CD.
  • Docker Plugin: Tích hợp với Docker, hỗ trợ build và triển khai container.
  • Blue Ocean Plugin: Giao diện người dùng (UI) mới của Jenkins, giúp quản lý pipeline dễ dàng hơn.
  • Slack Notification Plugin: Gửi thông báo đến Slack khi có thay đổi trạng thái build.

Để cài đặt plugin:

  1. Vào Manage Jenkins > Manage Plugins.
  2. Chọn tab Available.
  3. Tìm plugin bạn muốn cài đặt và nhấn Install without restart hoặc Install and restart.

Bước 13: Tích hợp Jenkins với hệ thống kiểm soát phiên bản (VCS)

Để 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.

Bước 14: Thiết lập Jenkins Pipeline (Tùy chọn)

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...'
            }
        }
    }
}

Kết luận

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.