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、点击构建进行测试

你可能感兴趣的:(Jenkins+SonarQube持续交付)