linux环境下搭建jenkins+sonarqube+sonarscanner,一键完成构建扫描

安装jenkins
jenkins插件下载地址:
http://updates.jenkins-ci.org/download/plugins/

sonarscanner下载地址:
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

详解一、基本配置:
1、安装:Jenkins 安装部署方式(以下4种方式后续都会写到):
1)直接下载war包jenkins.war部署到servlet容器中,如tomcat,下载地址https://jenkins.io/download
2)下载war包使用命令直接运行war包,java -jar jenkins.war;
3)windows下载zip包解压运行jenkins.exe即可安装成windows服务;
4)下载rpm包
https://pkg.jenkins.io/redhat-stable/
在linux下安装并配置服务
sudo rpm -ih jenkins-2.73.2-1.1.noarch.rpm

自动安装完成之后:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件

2、启动:启动jenkins:sudo service jenkins start

service jenkins start/stop/restart/status 
启动/停止/重启/查看状态

3、访问:访问jenkins ip+端口( 默认8080)
第一次登录Jenkins会要求解锁,打开红色标记中的路径,取出password,填入上图,点击continue,等等选择continue继续设置管理员
4.配置全局变量等:
maven配置:
maven

git路径:
git

JDK路径:
jdk

安装sonarscanner:
1、安装sonar插件:SonarQube Scanner for Jenkins
管理插件有三种方法
一:
下载插件

中直接选中安装。
二:是进行离线下载安装,安装步骤如下:
1)在离线插件下载地址中下载对应hpi文件;
2)进入jenkins插件管理-高级-上传插件中选中对应hpi进行上传
离线下载

3)显示成功则表示插件安装成功,如果失败就查看详细,看是前置的什么内容缺失,下载对应hpi后再进行安装。
三:将之前已安装使用的jenkins插件导出进行上传(好像不区分windows和linux)
一般路径为\jenkins\plugins
linux上传的路径为/var/lib/jenkins/ 默认的JENKINS_HOME目录
2、安装SonarQube
3、安装sonar-scanner
1)下载对应的zip包
2)解压
下载后放在/usr/local目录下,并解压

扫描二维码关注公众号,回复: 11622064 查看本文章
unzip sonar-scanner-cli-3.2.0.1227-linux.zip

3)配置环境变量
 和上面一样修改/etc/profile文件(修改为你的安装路径)


#set sonarqube
export SONAR_HOME=/usr/local/sonarqube-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
4)测试

进入/usr/local/sonar-scanner-3.2.0.1227-linux/bin执行:

./sonar-scanner -h

如果出现下文就说明安装好了:

[root@iZbp1bb2egi7w0ueys548qZ bin]# ./sonar-scanner -h
INFO: 
INFO: usage: sonar-scanner [options]
INFO: 
INFO: Options:
INFO:  -D,--define <arg>     Define property
INFO:  -h,--help             Display help information
INFO:  -v,--version          Display version information
INFO:  -X,--debug            Produce execution debug output

5)jenkins中配置sonar

SonarScanner和SonarQube的关系类似于客户端与服务端,由于SonarScanner工具需要把扫描的代码及结果发送到SonarQube服务器上,所以需要配置SonarQube服务地址。
   
在Jenkins系统配置>>系统设置中配置如下:
jenkins配置

6)jenkins中配置sonarscanner
在全局工具配置中配置如下:
sonar-scanner配置

7)项目配置:
描述

源码管理

凭证

仓库地址采用的方式是http方式
正确输入信息后,点击添加
添加构建后步骤
构建步骤

配置文件如下:

#projectKey项目的唯一标识,不能重复。
sonar.projectKey=test
#projectName值不能是中文,否则web页面部分是乱码
sonar.projectName=test
#版本定义
sonar.projectVersion=1.0
#扫描文件类型为java类型
#sonar.language=java
#扫描类文件路径地址
sonar.sources=./
#设置扫描路径所包含的文件
sonar.java.binaries=./
#设置sonar字符集编码格式UTF-8
sonar.sourceEncoding=UTF-8
#sonar排除文件类型
#sonar.exclusions=node_modules/**/*,.idea/**/*,**/*.xml
#sonar包含文件类型
sonar.inclusions=**/*.java
#加入单元测试插件jacoco
#sonar.java.coveragePlugin=jacoco
#服务器sonar前台登录用户名
sonar.login=admin
#服务器sonar前台登录密码
sonar.password=admin
#jdk版本
sonar.java.source=1.8

二、问题集锦:1、安装jenkins后,系统会自动生成一个jenkins的用户和jenkins的组,所有脚本该用户都要有权限。
如做免密:
cd ~/.ssh      
ssh-keygen -t rsa (四个回车)
#执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)       
ssh-copy-id localhost
2、配置邮件通知去jenkins插件中心下载Email Extension Plugin插件,在系统管理→管理插件→高级里面上传插件并安装。具体设置见附2。
3、配置java版本为1.8如果系统装有多个版本的java,需要制定适配版本。vi /etc/init.d/jenkins #然后修改如下参数

candidates=''
#/etc/alternatives/java
#/usr/lib/jvm/java-1.8.0/bin/java
#/usr/lib/jvm/jre-1.8.0/bin/java
#/usr/lib/jvm/java-1.7.0/bin/java
#/usr/lib/jvm/jre-1.7.0/bin/java
#/usr/lib/jvm/java-11.0/bin/java
#/usr/lib/jvm/jre-11.0/bin/java
#/usr/lib/jvm/java-11-openjdk-amd64
#/usr/bin/java
/usr/java/jdk1.8.0_192/bin/java
/usr/java/jdk1.8.0_192/jre/bin/java

4、第一次登陆然后没有修改管理员密码或者没有设置管理员,需要通过以下方法来重置密码
(1)密码为更改的情况下可以去:
cat /var/lib/jenkins/secrets/initialAdminPassword 同第一次登陆
(2)密码更改忘记的情况,删除Jenkins目录下config.xml文件中下面代码,并保存文件。个人觉得改第一个为false,也可以。

<useSecurity>true</useSecurity>  
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">  
  <denyAnonymousReadAccess>true</denyAnonymousReadAccess>  
</authorizationStrategy>  
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">  
  <disableSignup>true</disableSignup>  
  <enableCaptcha>false</enableCaptcha>  
</securityRealm>  

5、使用Dashboard View插件来分类工程。新建一个视图,并按如下选择,点击确定:
在这里插入图片描述

往下拉,选择如下:
在这里插入图片描述

6、权限管理:首先安装:Role-based Authorization Strategy插件,然后在系统管理里面选择Manage and Assign Roles。
在这里插入图片描述

第一步管理角色:Manage Roles,Global roles配置全局属性,Project roles配置项目属性,其中Pattern来配置可见项目:developer.* ,这里的developer是项目模式匹配前缀
在这里插入图片描述

第二步分配Assign Roles
在这里插入图片描述

图示的权限配置说明:管理员:具有最高权限,负责系统及用户权限配置;
发布人员(实名账号,需要注册):具有浏览视图和工程的权限,同时具有执行工程权限;
开发人员(实名账号,需要注册):具有浏览特定视图和特定工程的权限,同时具有特定工程的执行权限;
游客(guest公共账号):具有浏览所有视图和所有工程的权限;
7、中文插件请按装:Locale plugin
8、报org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Authentication required for '<https
此问题是
sonar-runner发现了.svn文件,于是启动了自己的SVN插件,去访问SVN,但是又没有对应SVN路径的授权所以就报错。
解决方法:

1.打开sonarqube的控制台,使用admin登录后 ,在配置->SCM->菜单中,将Disabled the SCM Sensor设置为true,    
2.在svn页面,设置svn的用户名和密码。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jokerhappy/article/details/108467098