Linux下sonarqube+jenkins安装

1. SonarQube安装

1.1准备环境

Tips:

sonarqube5.6+ 必须要JDK1.8

sonar scanner 2.5+后也要使用JDK1.8,所以JDK1.7下就要用scanner 2.4。

sonar的安装和启动不用root用户,而是用低权限的linux用户。

  1. 数据库配置
    首先确保mysql5.6版本及以上。
    创建SonarQube 服务所需的数据库:
#mysql -uroot -p
//输入你的数据库密码
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonarpassword';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;

修改max_allowed_packet

#vim /etc/my.cnf
[mysqld]
max_allowed_packet = 300M
//重启
#service mysqld restart
//重启后查看
#mysql -uroot -p
mysql> show variables like '%max_allowed_pack%';
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| max_allowed_packet | 314572800|
+--------------------+-----------+
1 row in set (0.00 sec)
--------------------- 
  1. SonarQube、Sonar-Scanner添加环境变量
    将下载的sonarqube-6.7.4.zip、sonar-scanner-cli-3.2.0.1227-linux.zip
    解压后移动到/usr/local目录下
#unzip sonarqube-6.7.4.zip /usr/local
#unzip sonar-scanner-cli-3.2.0.1227-linux.zip /usr/local

添加环境变量

#vi /etc/profile
//在末尾加上:
export SONAR_HOME=/usr/local/sonarqube-6.7.4
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner-3.2.0.1227-linux
PATH=$PATH:$SONAR_HOME/bin:$SONAR_SCANNER_HOME/bin
//使修改生效
#source /etc/profile

按如下配置修改sonar.properties 文件:

#vi $SONAR_HOME/conf/sonar.properties
//在开头加上
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

sonar.web.host=172.16.221.39//ip address
sonar.web.context=/
sonar.web.port=9000

1.2 SonarQube 配置

# useradd esuser
# chown -R esuser.esuser $SONAR_HOME
# chmod 777 -R $SONAR_HOME

1)修改elasticsearch.yml参数

#vi $SONAR_HOME/elasticsearch/config/elasticsearch.yml
//在开头加上
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 172.16.221.39
http.port: 9200
...
...
...
---------------------
//找到以下参数改为false
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

2)修改limits.conf参数

#vi /etc/security/limits.conf
//开头添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

3)修改20-nproc.conf参数
不同环境可能配置文件名不同,在/etc/security/limits.d/文件夹下寻找

# vi /etc/security/limits.d/20-nproc.conf
//修改如下内容:
* soft nproc 1024
//将1024改为2048
* soft nproc 2048

4)修改sysctl.conf文件

#vi /etc/sysctl.conf
//添加下面配置:
vm.max_map_count=655360
//修改完成后,执行以下命令生效
#sysctl -p

4 SonarQube启动

  1. 启动elasticsearch
# su esuser 
#$SONAR_HOME/elasticsearch/bin/elasticsearch -d
//查看是否启动成功,能看到9200和9300证明就成功了
#netstat -nultp
![启动成功端口](https://upload-images.jianshu.io/upload_images/17035812-b6381a53d5b79f8c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  1. 启动sonarqube
#$SONAR_HOME/bin/linux-x86-64/sonar.sh start

启动成功后,浏览器中访问 http://IP:9000/ ,界面如下:

启动成功界面

默认登录账户admin 密码 admin,可登录后修改密码。
如需汉化,下载sonarqube 汉化包,放到$SONAR_HOME/extensions/plugins ,重启sonarqube (sonar.sh restart)即可。

2 Sonar-Scanner安装

2.1 建立文件夹

#mkdir -p /root/java/test-project
#mkdir -p /root/java/test-project/src
//src文件夹下上传java文件进行测试,如helloword.java

2.2 增加配置文件

#cd /root/java/test-project

在该目录下新建文件sonar-project.properties

sonar.projectKey= test-project
sonar.projectName= test-project
sonar.projectVersion=1.0
sonar.sources=src/
sonar.language=java
sonar.sourceEncoding=UTF-8

2.3启动扫描

# $SONAR_HOME/bin/sonar-scanner

登录sonarqube网页,出现以下界面则代表扫描成功


扫描成功界面

3 Jenkins集成Sonarqube

3.1安装Jenkins

#rpm -ivh jenkins-2.107.3-1.1.noarch.rpm
//安装后启动
#service Jenkins start

在浏览器中访问 http://IP:8080/
首次进入会要求输入初始密码如下图

初始界面

密码为

#cat /var/lib/jenkins/secrets/initialAdminPassword

创建超级管理员账号


账号界面

Tips:
因为Jenkins默认端口是8080,可能会导致端口冲突.修改Jenkins的默认端口即可:

vi /etc/sysconfig/jenkins
//修改JENKINS_PORT即可

3.2离线安装插件

登录至jenkins主界面
系统管理-->管理插件-->高级-->上传插件

插件管理界面

上传sonar、svn有关插件,进行安装
可参考-->点击

3.3配置

登录至jenkins主界面
系统管理-->SonarQube servers


sonarqube配置

其中token获取方式如下:
登录至sonarqube主界面
右上角绿色图标-->我的账号-->安全


sonar配置

输入关键字(如admin)生成的令牌即Server authentication token
登录至jenkins主界面
系统管理-->全局工具配置

输入jdk和sonarqube-scanner的home路径


路径

3.4 新建任务

登录至jenkins主界面
新建任务->创建一个自由风格的软件项目(项目名称自取,如:test)
进入SVN配置
其中url地址是检测代码存放地址,目录结构与本地扫描一致


src_addr

进入sonnarqube-scanner配置

//配置内容如下
sonar.projectKey= test_project 
sonar.projectName=test_project
sonar.projectVersion=1.0
sonar.sources=./src
sonar.java.binaries=./src/
sonar.login=admin
sonar.password=admin
sonar.language=java
sonar.sourceEncoding=UTF-8

如图:


scanner

登录至sonarqube界面
配置scm和svn
将scm设置为false、svn设置用户名和密码


sonar

3.5 启动项目

进入jenkins界面,进入建立好的test项目,点击立即构建即可
如成功,则可在sonarqube界面找到刚刚执行的记录。


成功界面

你可能感兴趣的:(Linux下sonarqube+jenkins安装)