Jenkins+SonarQube持续交付

一、前言

本文主要讲述Jenkins自动化代码上线时,通过部署SonarQube软件进行代码质量检测,已保证上线的代码服务能正常运行。需要的软件有Mysql5.7、Java、SonarQube7.0等。

二、服务端安装MySQL

1、下载MySQL压缩包

cd /opt
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

2、清理环境安装依赖包

rpm -qa|grep mariadb
yum -y remove mariadb-libs
rm -f /etc/my.cnf
yum -y install libaio-devel

3、解压压缩包

tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz mysql

4、添加MySQL命令到环境变量

echo "export PATN=$PATH:/opt/mysql/bin" >>/etc/profile
source /etc/profile

5、创建MySQL数据目录

mkdir /mysql_data

6、创建MySQL管理用户并修改相关目录属主

useradd -M -s /sbin/nologin mysql
chown -R mysql.mysql /mysql_data

7、初始化数据库

mysqld --initialize-insecure --user=mysql --datadir=/mysql_data --basedir=/opt/mysql

8、编写MySQL配置文件

vim /etc/my.cnf
[mysqld]
user=mysql
port=3306
basedir=/opt/mysql
datadir=/mysql_data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

9、将启动脚本添加到systmd管理并启动服务

cp /opt/mysql/support-files/mysql.server  /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld

10、修改root用户密码

mysqladmin password

11、创建sonarqube库

mysql -u root -pxxxx
create database sonarqube default character set utf8;

三、服务端安装Java环境

yum -y install java

四、安装配置SonarQube服务端

1、下载软件

cd /opt
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.0.zip

2、解压压缩包

unzip sonarqube-7.0.zip
ln -s sonarqube-7.0.zip sonarqube

3、创建管理用户并修改软件目录属主

useradd -s /sbin/nologin -M sonarqube
chown -R sonarqube.sonarqube /opt/sonarqube*

4、修改连接数据库文件

vim /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false        #sonarqube是启动脚本指定的数据库运行用户,要与启动脚本里的一致

5、修改启动脚本文件

vim /opt/sonarqube/bin/linux-x86-64/sonar.sh
RUN_AS_USER=sonarqube

6、修改内核参数

vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p

7、编写启动脚本文件

vim /usr/lib/systemd/system/sonarqube.service
[Unit]
Description=sonarqube

[Service]
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
Type=forking
User=sonarqube
Group=sonarqube

[Install]
WantedBy=multi-user.target

8 、安装插件

cd /tmp
tar xf sonar_plugins.tar.gz -C /opt/sonarqube/extensions/
chown -R sonarqube. /opt/sonarqube*

9、启动服务

systemctl daemon-reload
systemctl start sonarqube
systemctl enable sonarqube

五、Jenkins主机上安装客户端

1、下载软件

cd /tmp
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip

2、解压压缩包

unzip sonar-scanner-cli-4.4.0.2170-linux.zip -d /opt
ln -s sonar-scanner-cli-4.4.0.2170-linux/ sonar-scanner

3、将命令包添加到环境变量

echo "export PATH=$PATH:/opt/sonar-scanner/bin" >>/etc/profile
source /etc/profile

六、测试代码检测

1、登录网页创建项目

http://xxx.xxx.xxx.xxx:9000 #网页地址为服务端IP地址

(1)、登录用户

(2)、生成复制Jenkins口令

(3)、创建一个项目

2、在Jenkins客户端上使用启动命令抓取代码

(1)、修改客户端配置文件

vim /opt/sonar-scanner/conf/sonar-scanner.properties
sonar.host.url=http://10.0.0.8:9000 
sonar.login=5f1d37765d85c06aee41ac9bac640ead235296c9

(2)、进入Jenkins工作目录,执行启动命令

cd /var/lib/jenkins/workspace/deploy_game
sonar-scanner \
  -Dsonar.projectKey=html \
  -Dsonar.sources=.

3、登录网页查看检测结果

七、设置与Jenkins持续交付

1、Jenkins设置SonarQube服务端信息

2、Jenkins设置SonarQube客户端信息

3、配置Jenkins项目配置

4、点击构建进行测试

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