【指導】SonarQube 部署說明

1,安裝

1.1 安裝依賴

需要保證Oracle JRE 8 及以上,或者 OpenJDK 8及以上(如下安裝 openjdk

# add-apt-repository ppa:openjdk-r/ppa

# apt-get update

# apt-get install openjdk-8-jdk

配置default-jre

# update-java-alternatives -l

java-1.7.0-openjdk-amd641071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

java-1.8.0-openjdk-amd641069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

# update-alternatives --config java

There are 2 choices forthe alternative java (providing /usr/bin/java).

  Selection   Path                                   Priority   Status

------------------------------------------------------------

  0        /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071     auto mode

  1        /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071     manual mode

* 2        /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069     manual mode

Press enter to keep thecurrent choice[*], or type selection number: 2

# java -version

openjdk version "1.8.0_91"

OpenJDK Runtime Environment (build1.8.0_91-8u91-b14-0ubuntu4~14.04-b14)

OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

1.2 安裝 MySQL

Sonar 默認使用的是 Derby數據庫,但這個數據庫一般用於評估版本或者測試用途。 Sonar可以支持大多數主流關係型數據庫,我們使用 MySQL

安裝過程中需要設置admin密碼:

# apt-get install mysql-server mysql-clientlibmysqlclient-dev

注:版本必須大於5.6,必須設置爲 "UTF-8",語言爲 "English"。檢查方法:

# mysql -u root-p

mysql>SHOW VARIABLES LIKE 'character%';

1.3 安裝 SonarQube

1.3.1 添加 sonar 用戶

# useradd -m -g root -s /bin/bash sonar

1.3.2 下載 SonarQube(服務器端)

從 http://www.sonarqube.org/downloads/ 下載最新包,解壓即可用:

$ wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.zip

1.3.3 下載 Sonar-Scanner(客戶端)

從http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner下載最新包,解壓即可用:

$ wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.6.1.zip



2,配置

2.1 配置數據庫

2.1.1 創建數據庫

以管理員賬號登錄:

# mysql -u root -p

mysql>CREATEDATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

2.1.2 在 MySQL中創建 sonar用戶

在mysql中建立一個名爲 sonar、密碼爲 xxxx 的用戶,授權 sonar 數據庫的所有操作:

mysql>CREATEUSER 'sonar'@'localhost' IDENTIFIED BY 'xxxx';

mysql>GRANT ALLON sonar.* TO 'sonar'@'%';

mysql>GRANT ALLON sonar.* TO 'sonar'@'localhost';

刷新權限表:

mysql>FLUSHPRIVILEGES;

2.1.3 配置數據庫

編輯 ${SONAR_HOME}/conf/sonar.properties 按實際,配置數據庫(在默認配置中,修改用戶名、密碼,選擇數據庫即可):

$ visonar/conf/sonar.properties

2.2 配置 Sonar 服務器端

配置基本信息,如 host、端口等

$ visonar/conf/sonar.properties

2.3 配置開機自啓動

$ sudo vi /etc/init.d/sonar

#!/bin/sh
#
# rc file for SonarQube
#
# chkconfig: 345 96 10
# description:SonarQube system (www.sonarsource.org)
#
### BEGIN INIT INFO
# Provides: sonar
# Required-Start:$network
# Required-Stop:$network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description:SonarQube system (www.sonarsource.org)
# Description:SonarQube system (www.sonarsource.org)
### END INIT INFO
/usr/bin/sonar $*

添加啓動服務:

$ sudo ln -s /home/sonar/sonar/bin/linux-x86-64/sonar.sh/usr/bin/sonar

$ sudo chmod 755 /etc/init.d/sonar

$ sudo update-rc.d sonar defaults

2.4 集成 LDAP

2.4.1 修改管理員密碼

啓動 sonar:

$ /etc/init.d/sonar start

訪問地址:http://101.201.39.57:9000

默認管理員賬號密碼:admin/admin

入口:Administration > My Account > Security

2.4.2 安裝 LDAP 插件

入口:Administration > System > Update Center

找到安裝即可

2.4.3 重啓 sonar

插件安裝、更新,需要重啓方可生效。

2.4.4 配置 LDAP

$ vi conf/sonar.properties

# LDAP configuration
# General Configuration
sonar.security.realm=LDAP
sonar.security.savePassword=true
ldap.url=ldap://myserver.mycompany.com
# User Configuration
ldap.user.baseDn=ou=Users,dc=mycompany,dc=com
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
# Group Configuration
ldap.group.baseDn=ou=Groups,dc=sonarsource,dc=com
ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))

如果 ldap 禁止匿名訪問,還需要配置bindDn和bindPassword。

2.4.5 重啓 sonar

成功的話,可以從 sonar 日誌中看到成功信息

2.5 Sonar-Scanner 客戶端配置

爲了便於維護、複用,客戶端(當然也可以在服務器端所在的機器上執行)統一採用命令行方式掃描。

2.5.1 工具全局配置

配置服務:

$ sudo ln -s /home/sonar/sonar-scanner/bin/sonar-scanner/usr/bin/sonar-scanner

修改配置文件:

$ vi sonar-scanner/conf/sonar-scanner.properties

#----- DefaultSonarQube server
sonar.host.url=http://101.201.39.57:9000
sonar.login=xxxxx
#----- Default sourcecode encoding
sonar.sourceEncoding=UTF-8

注:sonar-scanner 掃描結果上傳至 sonar服務器端,需要授權,故在這裏配置全局上傳賬號信息(當然也可以按單項目單獨配置)。配置參數如下:

sonar.login 登錄賬號,或者用戶口令碼

sonar.passwd 登錄密碼

如果使用了用戶口令碼,那 sonar.passwd 這個參數就不需要了。

用戶口令碼生成方式如下:

入口:Administration > Security

2.5.2 工程配置

添加sonar-project.properties,如:

sonar.projectKey=java-sonar-runner-test
sonar.projectName=java-sonar-runner-test
sonar.projectVersion=1.0
# Set modules IDs
sonar.modules=module-one,module-two
# Modules inheritproperties set at parent level
sonar.sources=src
sonar.language=java
sonar.java.libraries=build
sonar.branch=newbranch

直接執行sonar-scanner 即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章