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界面找到刚刚执行的记录。


成功界面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容