SonarQube là một nền tảng hệ thống quản lý chất lượng mã nguồn mở và miễn phí có thể được sử dụng để tự động kiểm tra mã. Nó có thể phân tích các tệp mã nguồn, tính toán một tập hợp các số liệu và hiển thị kết quả trên bảng điều khiển dựa trên web. Nó được viết bằng ngôn ngữ Java và cũng hỗ trợ các ngôn ngữ khác như Perl, PHP và Ruby. Theo mặc định, SonarQube hỗ trợ cơ sở dữ liệu h2, nhưng nó không thể mở rộng. Vì vậy, bạn có thể tích hợp SonarQube với các máy chủ cơ sở dữ liệu khác như MSSQL, PostgreSQL, Oracle và MySQL. SOnarQube đi kèm với rất nhiều plugin, sẽ tự động tích hợp mã nguồn từ các kho lưu trữ. Nó cho phép các nhà phát triển phát hiện lỗi và lỗ hổng cũng như giảm mùi mã, trong hơn 20 ngôn ngữ khác nhau. Bạn có thể dễ dàng tích hợp SolarQube với các môi trường phát triển Eclipse, Visual Studio và IntelliJ IDEA thông qua các plugin SonarLint.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt SonarQube trên máy chủ Ubuntu 16.04.
Sau khi cập nhật hệ thống, bạn có thể tiến hành cài đặt Java.
Đầu tiên, thêm PPA bằng cách chạy lệnh sau:
Tiếp theo, cập nhật kho lưu trữ bằng lệnh sau:
Sau khi kho lưu trữ được cập nhật, bạn có thể cài đặt Java 8 bằng cách chạy lệnh sau:
Sau khi cài đặt Java, bạn có thể kiểm tra phiên bản Java bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Apache và MariaDB và cho phép chúng khởi động khi khởi động bằng lệnh sau:
Sau khi Apache và MariaDB đã được cài đặt và hoạt động, bạn có thể tiến hành bước tiếp theo.
Trong quá trình này, bạn sẽ được yêu cầu đặt mật khẩu root, xóa người dùng ẩn danh, không cho phép đăng nhập root từ xa và xóa cơ sở dữ liệu thử nghiệm. Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
Sau khi MariaDB được bảo mật, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Nhập mật khẩu root của bạn khi được nhắc, sau đó tạo cơ sở dữ liệu cho SonarQube:
Tiếp theo, tạo một người dùng cơ sở dữ liệu mới và cung cấp các quyền phù hợp cho người dùng cơ sở dữ liệu của bạn đối với cơ sở dữ liệu bạn đã tạo.
Tiếp theo, áp dụng các thay đổi cho các quyền cơ sở dữ liệu bằng lệnh sau:
Cuối cùng, thoát khỏi shell MariaDB bằng lệnh sau:
Sau khi cấu hình cơ sở dữ liệu, bạn có thể tiến hành bước tiếp theo.
Sau khi tải xuống hoàn tất, hãy giải nén tệp lưu trữ đã tải xuống bằng lệnh sau:
Tiếp theo, đổi tên thư mục bằng lệnh sau:
Tiếp theo, bạn sẽ cần sửa đổi tệp cấu hình chính của SonarQube là sonar.properties:
Thực hiện các thay đổi sau:
Lưu và đóng tệp, sau đó tạo tệp dịch vụ systemd cho SonarQube.
Thêm các dòng sau:
Lưu tệp khi bạn hoàn tất, sau đó khởi động dịch vụ SonarQube và cho phép nó khởi động khi khởi động bằng lệnh sau:
Quá trình SonarQube mất một thời gian để hoàn tất để tạo cơ sở dữ liệu và điền dữ liệu. Bạn có thể kiểm tra trạng thái của SonarQube bằng lệnh sau:
Bạn cũng có thể theo dõi quá trình bằng cách xem nội dung của tệp /opt/sonar/logs/sonar.log. Khi bạn hoàn tất, bạn có thể tiến hành bước tiếp theo.
Đầu tiên, hãy bật mô-đun proxy Apache bằng lệnh sau:
Tiếp theo, hãy tạo một tệp máy chủ ảo mới cho SonarQube bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó bật máy chủ ảo mới bằng cách chạy lệnh sau:
Cuối cùng, khởi động lại dịch vụ Apache bằng lệnh sau:
Trước khi truy cập, bạn sẽ cần cho phép cổng 80 thông qua tường lửa UFW. Theo mặc định, UFW bị vô hiệu hóa trong Ubuntu, vì vậy trước tiên bạn sẽ cần phải bật nó. Bạn có thể bật nó bằng cách chạy lệnh sau:
Sau khi tường lửa UFW được bật, bạn có thể cho phép cổng 80 đi qua UFW bằng cách chạy lệnh sau:
Bây giờ, hãy mở trình duyệt web của bạn và điều hướng đến URL
, bạn sẽ thấy màn hình sau:
Bây giờ, hãy nhấp vào nút "Đăng nhập", bạn sẽ thấy màn hình sau:
Đăng nhập bằng tên người dùng mặc định là "admin" và mật khẩu là "admin", bạn sẽ thấy màn hình sau:
Sau khi bạn đã đăng nhập vào bảng điều khiển SonarQube, hãy nhấp vào nút Administration > System > System Info. Bạn sẽ thấy thông tin hệ thống hiện tại trong màn hình sau:
Tiếp theo, hãy nhấp vào nút Administration > System > Update Center, bạn sẽ thấy tất cả các plugin đã cài đặt trong màn hình sau:
Tại đây, bạn có thể cập nhật các plugin hiện có và cũng có thể cài đặt các plugin có sẵn. Sau khi cài đặt hoặc cập nhật các plugin cần thiết, bạn sẽ cần nhấp vào nút "Khởi động lại" để khởi động lại hệ thống để cập nhật các thay đổi.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt SonarQube trên máy chủ Ubuntu 16.04.
Điều kiện tiên quyết
- Cài đặt máy chủ Ubuntu 16.04 mới trên hệ thống của bạn.
- Tối thiểu 4 GB RAM.
- Người dùng không phải root có quyền sudo.
Bắt đầu
Trước khi bắt đầu, bạn cần khuyến nghị cập nhật hệ thống cơ sở của bạn lên phiên bản mới nhất. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau:
Mã:
sudo apt-get update -y
sudo apt-get upgrade -y
1 Cài đặt Java
Sonarqube là ứng dụng dựa trên Java, vì vậy trước tiên bạn sẽ cần cài đặt Java 8. Theo mặc định, Java 8 không có trong kho lưu trữ Ubuntu. Bạn có thể cài đặt Java 8 bằng cách thêm kho lưu trữ webupd8team PPA vào hệ thống của mình.Đầu tiên, thêm PPA bằng cách chạy lệnh sau:
Mã:
sudo add-apt-repository ppa:webupd8team/java
Mã:
sudo apt-get update -y
Mã:
sudo apt-get install oracle-java8-installer -y
Mã:
java -version
Mã:
Phiên bản Java "1.8.0_91"Java(TM) SE Runtime Environment (bản dựng 1.8.0_91-b14)Java HotSpot(TM) 64-Bit Server VM (bản dựng 25.91-b14, chế độ hỗn hợp)
2 Cài đặt Apache và MariaDB
Bạn cũng sẽ cần cài đặt Apache và MariaDB, vì chúng ta sẽ sử dụng Apache cho proxy ngược và MariaDB làm cơ sở dữ liệu. Bạn có thể cài đặt cả hai bằng cách chạy lệnh sau:
Mã:
sudo apt-get install apache2 mariadb-server -y
Mã:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql
3 Cấu hình MariaDB
Theo mặc định, quá trình cài đặt MariaDB không được bảo mật, vì vậy bạn sẽ cần bảo mật quá trình cài đặt MariaDB. Bạn có thể thực hiện việc này bằng cách chạy tập lệnh mysql_secure_installation:
Mã:
sudo mysql_secure_installation
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không):Đổi mật khẩu root? [Y/n] nXóa người dùng ẩn danh? [Y/n] YKhông cho phép đăng nhập root từ xa? [Y/n] YXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Mã:
mysql -u root -p
Mã:
MariaDB [(none)]> CREATE DATABASE sonardb;
Mã:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
Mã:
MariaDB [(none)]> \q
4 Cài đặt SonarQube
Bạn có thể tải xuống phiên bản mới nhất của SonarQube từ trang web chính thức của họ. Bạn có thể tải xuống bằng lệnh wget:
Mã:
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
Mã:
sudo unzip sonarqube-6.4.zip -d /opt
Mã:
sudo mv /opt/sonarqube-6.4 /opt/sonar
Mã:
sudo nano /opt/sonar/conf/sonar.properties
Mã:
##Người dùng cơ sở dữ liệu thông tin xác thực:sonar.jdbc.username=sonarsonar.jdbc.password=yourpasswordsonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
Mã:
sudo nano /etc/systemd/system/sonar.service
Mã:
[Unit]Description=SonarQube serviceAfter=syslog.target network.target[Service]Type=forkingExecStart=/opt/sonar/bin/linux-x86-64/sonar.sh startExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stopUser=rootGroup=rootRestart=always[Install]WantedBy=multi-user.target
Mã:
sudo systemctl start sonar
sudo systemctl enable sonar
Mã:
sudo systemctl status sonar
5 Cấu hình Apache làm Proxy ngược
Theo mặc định, SonarQube lắng nghe trên cổng 9000. Ở đây, chúng ta sẽ sử dụng Apache làm proxy ngược để có thể truy cập SonarQube bằng cổng 80:Đầu tiên, hãy bật mô-đun proxy Apache bằng lệnh sau:
Mã:
sudo a2enmod proxy
sudo a2enmod proxy_http
Mã:
sudo nano /etc/apache2/sites-available/sonar.conf
Mã:
ServerName 192.168.15.189 ServerAdmin [emailprotected] ProxyPreserveHost On ProxyPass / http://localhost:9000/ ProxyPassReverse / http://localhost:9000/ TransferLog /var/log/apache2/sonar_access.log ErrorLog /var/log/apache2/sonar_error.log
Mã:
sudo a2ensite sonar
Mã:
sudo systemctl restart apache2
6 Truy cập Giao diện web SonarQube
Tất cả các thành phần cần thiết đã được cài đặt và cấu hình. Bây giờ là lúc truy cập giao diện web SonarQube.Trước khi truy cập, bạn sẽ cần cho phép cổng 80 thông qua tường lửa UFW. Theo mặc định, UFW bị vô hiệu hóa trong Ubuntu, vì vậy trước tiên bạn sẽ cần phải bật nó. Bạn có thể bật nó bằng cách chạy lệnh sau:
Mã:
sudo ufw enable
Mã:
sudo ufw allow 80/tcp
Bây giờ, hãy nhấp vào nút "Đăng nhập", bạn sẽ thấy màn hình sau:
Đăng nhập bằng tên người dùng mặc định là "admin" và mật khẩu là "admin", bạn sẽ thấy màn hình sau:
Sau khi bạn đã đăng nhập vào bảng điều khiển SonarQube, hãy nhấp vào nút Administration > System > System Info. Bạn sẽ thấy thông tin hệ thống hiện tại trong màn hình sau:
Tiếp theo, hãy nhấp vào nút Administration > System > Update Center, bạn sẽ thấy tất cả các plugin đã cài đặt trong màn hình sau:
Tại đây, bạn có thể cập nhật các plugin hiện có và cũng có thể cài đặt các plugin có sẵn. Sau khi cài đặt hoặc cập nhật các plugin cần thiết, bạn sẽ cần nhấp vào nút "Khởi động lại" để khởi động lại hệ thống để cập nhật các thay đổi.