其他分享
首页 > 其他分享> > SonarQube+jenkins实现CodeReview环境搭建

SonarQube+jenkins实现CodeReview环境搭建

作者:互联网

一、MySQL安装

1、下载、上传、解压、重命名

下载MySQL,上传到linux服务器,我放在了目录/usr/local目录下,下载的版本是:mysql-5.7.22-linux-glibc2.12-x86_64.tar

对上传的压缩文件进行解压,解压命令:tar -zxvf  mysql-5.7.22-linux-glibc2.12-x86_64.tar

使用mv命令把文件重命名:mv mysql-5.7.22-linux-glibc2.12-x86_64  mysql

 

 

2、添加用户和用户组

添加用户组:

groupadd mysql

添加mysql用户到用户组mysql:

useradd -g mysql mysql

 

 3、安装mysql

把mysql文件所属用户和组设置为mysql

chown -R mysql:mysql

安装命令:

./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

#注意记住最后一行的 m6Yifsio7n<*,这个是mysql初始登录root时的密码、

将mysql/目录下除了data/目录的所有文件,改回root用户所有

chown -R root

mysql用户只需作为mysql/data/目录下所有文件的所有者

chown -R mysql data

4、文件配置

mysql目录下复制启动文件:

cp support-files/mysql.server /etc/init.d/mysqld

给启动文件赋予权限

chmod 755 /etc/init.d/mysqld

拷贝my_print_defaults 到/usr/bin目录下

cp /usr/local/mysql/bin/my_print_defaults  /usr/bin/

修改启动脚本,修改项:

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data

port=3306

vi /etc/init.d/mysqld

 

5、启动服务并使用

加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了

使用命令编辑:  vim  /etc/profile

添加mysql路径

export PATH=$PATH:/usr/local/mysql/bin

:qw 保存

使用 source  /etc/profile  命令使其生效配置以上信息之后,基本就可以启动了mysql(如果不能启动,请看最后的配置文件),但是现在还缺少mysql的配置文件,即my.cnf文件(没有它Mysql也可以使用内置的默认参数启动)

使用命令登录mysql

mysql -uroot -p 

Enter password: “ 这里password是上面的: m6Yifsio7n<*”

登录成功后后设置root密码

mysql>SET PASSWORD = PASSWORD('root');

6、使用windows 远程访问linux虚拟机的mysql

首先需要关闭防火墙, 或者在/etc/sysconfig/iptables 下开放3306自己设置的端口号,然后 service iptables restart 重启服务

给用户授权

输入命令:grant all privileges on . to root @"%" identified by ‘123456’ WITH GRANT OPTION

授权完成后就可以进行远程连接了

7、mysql 启动、重启、停止命令

启动:service mysql start

停止:service mysql stop

重启:service mysql restart

二、SonarQube安装

现在sonarqube文件并上传:sonarqube-7.6.zip

1、数据库配置

创建sonarqube服务需要的数据库

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 'sonarpassword';

 mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonarpassword';

 mysql> FLUSH PRIVILEGES;

2、修改配置文件,文件在sonarqube目录的conf目录下sonar.properties

 

 

 

 

sonar.jdbc.username=sonar

sonar.jdbc.password=sonarpassword

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

sonar.web.host=0.0.0.0

sonar.web.context=/

sonar.web.port=9000

 进入sonaran安装bin目录下如../sonarqube-7.6/bin/linux-x86-64,运行命令:./sonar.sh restart 重启服务

3、异常处理

(1)java.lang.RuntimeException: can not run elasticsearch as root

错误原因:因为安全问题elasticsearch 不让用root用户直接运行

创建用户

adduser sonar

为用户创建密码

passwd sonarUser

修改sonar的目录和用户组为sonar

chown -R sonar:sonar sonarqube-7.6

重新启动sonar

 

使用普通用户启动sonar   ./sonar.sh start

(2)如果sonarqube启动失败,日志显示如下

 

在wrapper.conf文件增加

 3、如上操作还是执行失败

 

操作temp文件的权限修改为chown –R sonar:sonar temp

 

三、Jenkins配置

1、在Jenkins中要新建sonarqube测任务需要下载安装scanner插件,由于scanner插件的版本对jdk的版本有要求,可以根据自己的需求下载合适scanner版本,选择插件上传进行安装

 

 2、安装完成后重新启动Jenkins,安装成功的标志在已安装列表中进行查询

3、 使用Jenkins新建一个构建任务

general 选择构建策略 保持天数和保持构建的最大数进行选择,如果不选择构建次数多了会占用磁盘空间

 

 4、源码管理:输入代码库的地址和账号密码

 

 5、Pre Steps 填写

 

 6、build,填写完成后保存

 

 

7、进行项目构建和查看构建日志,点击build进行项目构建,和查看构建过程中的日志文件

 

 

 

 

 

 

8、构建过程中存在的问题:

(1)、sonar-scanner扫描代码出错 SonarQube svn: E170001

打开sonarqube的控制台,使用admin登录后 ,在配置->SCM->菜单中,将Disabled the SCM Sensor设置为true

 

 (2)、ERROR: Caused by: Failed to upload report - An error has occurred. Please contact your administrator

查看数据库max_allowed_packet空间:show VARIABLES like '%max_allowed_packet%';

使用命令直接修改:

set global max_allowed_packet = 64*1024*1024*10

修改完成后要重新启动sonar

(3)、

ERROR: No such settings file /usr/local/apche-maven-3.5.4/conf/settings.xml exists

Please verify that your alternate settings file is specified properly and exists in the workspace

 

 (4)没有在指定目录下显示

 

 

 修改执行文件

 

 小结:以上是笔者亲自验证过,可供读者进行参考,安装配置时要注意各软件的安装版本

标签:CodeReview,sonarqube,SonarQube,usr,mysql,sonar,jenkins,local,目录
来源: https://www.cnblogs.com/jin319/p/15045641.html