Cài đặt, cấu hình SonarQube theo script + tích hợp và tạo Webhook SonarQube Job trên Jenkins

Tram Ho

Hi mọi người, hôm nay mình sẽ chia sẻ một ít kinh nghiệm cài đặt SonarQube trên môi trường CentOS 7 và cách tích hợp SonarQube trên Jenkins để quét source code và tạo Code Quality Gate.

1. Cài đặt SonarQube

Mình có dựa vào script từ gist của một anh DEV mà lâu quá mình không lưu lại link (Nếu anh có vô tình đọc bài này nếu có thể comment em để em note tác giả nhé, em cảm ơn ^^) tạo một script để cài đặt SonarQube mọi người cần định nghĩa phiên bản cũng như lưu ý giúp mình cài đặt phiên bản Java tương thích.

  • Cài đặt phiên bản Java lưu ý cài bản openjdk-devel giúp mình nhé
  • Cài đặt database PostgreSQL
  • Nhớ đổi thông tin password nhé mình để mặc định xxxxxx

Sau khi cài đặt xong thì check lại status của SonarQube xem đã active chưa nhé bằng câu lệnh: systemctl status sonarqube

Mọi người muốn kiểm tra hoặc thay đổi cấu hình truy cập theo đường dẫn này nhé: /opt/sonarqube/conf/sonar.properties

2. Tích hợp triển khai SonarQube trên Jenkins

Cài đặt Plugin SonarQube Scanner trên Jenkins

Vào phần Manage Jenkins => Configure System

Đến mục SonarQube server và cài đặt các thông số cần thiết

Lưu ý phần token mình thực hiện 2 bước giúp mình: Đầu tiên đăng nhập vào site SonarQube để tạo token nhé

Bước 2: Truy cập phần Credentials => System => Gloabl để tạo ra secret key từ site SonarQube vừa lấy

Sau khi hoàn tất xong thì lần lượt tạo Job SonarQube để quét source code

Cấu hình Pipeline nhé mọi người

Thông tin pipeline mình đính kèm bên dưới

Lưu ý dòng mvn sonar:sonar giúp mình nhé là project mọi người đã tạo trên SonarQube, sau khi tạo sẽ có dòng token scan này nhớ lưu lại cho các lần sử dụng sau này.

Tạo mới project sẽ theo các bước bên dưới, đầu tiên mình tạo manual project và chọn Localy project nhé bà con

Dòng token mình lưu ý với mọi người chính là dòng khi khởi tạo project này.

3. Tạo Webhook cho SonarQube Job trên Jenkins

Ok đến đây là hoàn tất quá trình cài đặt và thiết lập 1 job pipeline trên Jenkins nhưng SonarQube có 1 thiết lập cuối cùng chính là tạo webhook để bắn event cho Jenkins biết là Sonar đã quét xong vui lòng cập nhật trạng thái cho Job là thành công hay thất bại. Trong phần Project Settings mọi người chọn đến webhooks nhé.

Lưu ý đường dẫn webhook trên Jenkins sẽ là http://jenkins-host:port/sonarqube-webhook/ nhé mọi người, khi truy cập trên giao diện sẽ báo như hình

Okie giờ bắt đầu bật job lên và chờ thành quả thui nếu không có Webhook thì job sẽ chạy đến lúc bị timeout mới dừng nhé mọi người.

Trên Sonar mọi người truy cập Project Settings => Background Tasks để check trạng thái job quét nhé

Ah thêm một lưu ý với những ai quét source code Java thì nên thêm cấu hình ignore những thư mục source không muốn quét để tăng tốc độ lên nhé. Sample template như hình bên dưới của mình.

Cảm ơn mọi người đã follow đến dòng này, hẹn gặp mọi người trong bài viết lần sau nhé ^^

Link bài viết của mình: https://gociter.wordpress.com/2022/09/29/cai-dat-cau-hinh-sonarqube-tren-jenkins-va-tao-webhook-sonarqube-job/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo