sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置

标题很长,其实最后的结果就是jenkins集成了sonar,scanner,svn并分布式的在不同的节点服务上build。

需求:1.实现代码扫描;2.jenkins集成sonar并自动扫描svn上的更新的代码;3.如果更新代码较多,出现排队,那么需要并发扫描,也就是配置jenkins节点。

疑问:当时出现的疑问就是我的sonar服务可以配置多个,但是scanner他的配置是服务器的相对路径,如何在slave节点服务器上也使用我的全局变量。

解决办法:既然不知道节点的scanner如何配置,那么索性我的master(服务器端jenkins)配置全局变量时选择自动安装,不填写相对路径,在一次次构建失败中分析

环境说明:linux,jenkins放到Tomcat中,sonarqube,sonarqube scanner。数据库mysql在另外一台服务器上。

PS:我有一篇是关于本地Windows版的集成,其实和linux差不多,相对而言linux在配置数据库方面都没有出现问题,反而更简单了。可以参照一下。

下面罗列一下步骤:

1.jenkins配置sonarqube server

2.jenkins配置SVN,JDK

3.jenkins配置sonarqube scanner

4.jenkins配置节点

5.修改节点的scanner的配置文件

==============================

1.jenkins配置sonarqube server

路径:系统管理-系统设置-SonarQube servers

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第1张图片

2.jenkins配置SVN,JDK

路径:系统管理-全局工具配置-JDK

PS:最初选择的是相对路径,但是在节点中的路径不对,导致jdk无法运行,所以此处要选择自动安装

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第2张图片

SVN在具体的项目中配置即可,对应的svn地址并添加用户和密码

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第3张图片

3.jenkins配置sonarqube scanner

路径:系统管理-全局工具配置-SonarQube Scanner

PS:此处也选择自动安装,要不然节点服务器找不到对应的scanner

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第4张图片

4.jenkins配置节点

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第5张图片sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第6张图片

节点服务器出现connnected说明成功。

5.修改节点的scanner的配置文件

在job中修改需要运行的节点服务标签。

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第7张图片

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第8张图片

此时就可以构建一次,当然会失败的,因为咱们的scanner的配置文件没有更改,然后节点服务器会同步master上的配置,你会发现在节点的工作目录中出现如下文件

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第9张图片

重要:修改C:\jenkins\tools\hudson.plugins.sonar.SonarRunnerInstallation\SonarQube_Scanner\conf的sonar-scanner.properties配置文件,需要指定sonar服务和相应的数据库。

sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置_第10张图片

再次构建,你会发现已经成功,至此jenkins上的节点服务已经将扫描结果传给了sonar服务器。

你可能感兴趣的:(sonarQube+sonarQube Scanner+SVN+jenkins的节点分布式配置)