Cách cài đặt SonarQube trên Ubuntu 16.04

theanh

Administrator
Nhân viên
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.

Đ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
Sau khi cập nhật hệ thống, bạn có thể tiến hành cài đặt Java.

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
Tiếp theo, cập nhật kho lưu trữ bằng lệnh sau:
Mã:
sudo apt-get update -y
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:
Mã:
sudo apt-get install oracle-java8-installer -y
Sau khi cài đặt Java, bạn có thể kiểm tra phiên bản Java bằng lệnh sau:
Mã:
java -version
Bạn sẽ thấy đầu ra sau:
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)
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

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
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:
Mã:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql
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.

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
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:
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
Sau khi MariaDB được bảo mật, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
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:
Mã:
MariaDB [(none)]> CREATE DATABASE sonardb;
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.
Mã:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
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:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
Cuối cùng, thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> \q
Sau khi cấu hình cơ sở dữ liệu, bạn có thể tiến hành bước tiếp theo.

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
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:
Mã:
sudo unzip sonarqube-6.4.zip -d /opt
Tiếp theo, đổi tên thư mục bằng lệnh sau:
Mã:
sudo mv /opt/sonarqube-6.4 /opt/sonar
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:
Mã:
sudo nano /opt/sonar/conf/sonar.properties
Thực hiện các thay đổi sau:
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
Lưu và đóng tệp, sau đó tạo tệp dịch vụ systemd cho SonarQube.
Mã:
sudo nano /etc/systemd/system/sonar.service
Thêm các dòng sau:
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
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:
Mã:
sudo systemctl start sonar
sudo systemctl enable sonar
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:
Mã:
sudo systemctl status sonar
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.

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
Tiếp theo, hãy tạo một tệp máy chủ ảo mới cho SonarQube bằng lệnh sau:
Mã:
sudo nano /etc/apache2/sites-available/sonar.conf
Thêm các dòng sau:
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
Lưu và đóng tệp, sau đó bật máy chủ ảo mới bằng cách chạy lệnh sau:
Mã:
sudo a2ensite sonar
Cuối cùng, khởi động lại dịch vụ Apache bằng lệnh sau:
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
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:
Mã:
sudo ufw allow 80/tcp
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.

Kết luận​

Trong hướng dẫn trên, chúng ta đã học cách cài đặt SonarQube trên Ubuntu 16.04 và cách sử dụng cơ bản SonarQube. Bây giờ bạn có thể dễ dàng triển khai nó trong môi trường sản xuất. Hãy thoải mái bình luận cho tôi nếu bạn cần bất kỳ trợ giúp nào.
 
Back
Bên trên