最近在为公司搭建自己的研发管理平台,自己之前也没有弄过,都是在网上先学一步步摸索出来的。
1.关于禅道的的安装详见https://blog.csdn.net/kangzhuang521/article/details/109730767
2.安装jenkins
我这里选用的是jenkins2.266目前最新的版本,由于是部署在内网,所以很麻烦,我自己在本机搞了一台虚拟机,都是事先将一些插件提前安装好,然后将/var/lib/jenkins/plugins下面的文件打包,放到内网服务器同一路径下,包括maven的、git的,这样新建jenkins任务的时候才可以构建一个maven项目,这里不多讲了,
把rpm压缩包上传到/u01/crm/software/目录下
执行
rpm -ivh jenkins-1.612-1.1.noarch.rpm
此时启动
service jenkins start
也可以使用jenkins.war部署到tomcat
还要修改一个Jenkins的一个配置文件:
vim /etc/init.d/jenkins
在candidates=添加本地jdk的环境变量/bin/java
卸载Jenkins
1、rpm卸载
rpm -e jenkins
2、检查是否卸载成功
rpm -ql jenkins
3、彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf
安装插件
有外网
需要啥直接下载
升级站点
http://mirror.xmission.com/jenkins/updates/update-center.json
http://updates.jenkins-ci.org/update-center.json
无外网
总体思路:
找一台可以连接外网的虚拟机,安装好,在页面上下载好需要的插件。把这台虚拟机上Jenkins目录下的plugins目录拷贝到没有外网的Jenkins目录下
/var/lib/jenkins/plugins
拷贝到没有外网的Jenkins目录下需要修改用户和组
chown -R 用户 目录或文件名
chgrp -R 组 目录或文件名
更换Jenkins工作空间
查看jenkins安装路径
rpm -ql jenkins
jenkins相关目录释义:
(1)/usr/lib/jenkins/:jenkins安装目录,war包会放在这里。
( 2 ) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
(3)/var/lib/jenkins/:默认的JENKINS_HOME。
(4)/var/log/jenkins/jenkins.log:jenkins日志文件。
2修改jenkins配置文件/etc/sysconfig/jenkins,进去把JENKINS_HOME路径改为你需要的,前提是你先把原来的数据copy到你需要的路径哦,copy前建议先关闭jenkins,!!!!
service jenkins restart 重启jenkins
service jenkins start 启动jenkins
service jenkins stop 关闭jenkins
chkconfig jenkins on 设置开机自启动
启动完成后访问网址http://localhost:port/jenkins
部署项目:
安装sonar
SonarQube的下载和安装
(1)首先去SonarQube的官网下载SonarQube包,而我们则选择较稳定的LTS版本6.7.2,目前sonar7.9+版本不再支持mysql数据库,sonar-scaner我用的是2.8版本,太高的版本需要jdk11.
下载完成后,unzip解压,我的解压路径为/web/sonarqube-6.7.2,同时新增一个用户和用户组(SonarQube不能以ROOT用户运行):
#创建一个名为sonarqube的用户组和一个用户名为sonarqube密码为sonarqube的用户
groupadd sonarqube
useradd sonarqube -g sonarqube -p sonarqube
#为该用户分配文件夹权限
chown -R sonarqube:sonarqube /web/sonarqube-6.7.2
(2)之后,编辑sonar.properties文档,修改一些属性
vim /web/sonarqube-6.7.2/conf/sonar.properties
#设置jvm使用的内存大小,Xms最小使用内存,Xmx最大使用内存,可以根据实际情况自行设置,我目前的系统运行内存为8G
sonar.web.javaOpts=-server -Xms1G -Xmx1G -XX:+HeapDumpOnOutOfMemoryError
#配置持久化数据库的账户密码
sonar.jdbc.username=sonar
sonar.jdbc.password=Sonar6.2
#配置url,我此处使用的mysql
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#下面设定访问网址为 http://centos:9000/sonar
sonar.web.host=0.0.0.0
sonar.web.port=9000
sonar.web.context=/sonar
(3)配置启动参数
vim /web/sonarqube-6.7.2/bin/linux-86-64(此处根据系统内存自行选择)/sonar.sh
修改RUN_AS_USER=sonarqube
即我们之前创建的用户
(4)启动sonarqube
#先切换到sonarqube用户
su sonarqube
#执行启动命令
cd /web/sonarqube-6.7.2/bin/linux-86-64/
sh sonar.sh start
附sonar启动命令:
sh sonar.sh start #启动sonar
sh sonar.sh stop #安全停止sonar
sh sonar.sh console #控制台启动sonar
#查看日志
cd ../../logs
日志分为sonar.log,es.log,web.log,若不明原因启动失败,可依次查看这几个日志。
启动后,若日志文件均无报错,即可访问http://localhost:9000/sonar,若顺利,则会出现如下界面
点击login in,输入初始账户密码admin/admin即可。
若始终无法访问,建议检查防火墙设置
(三)Jenkins集成Sonar
(1)在Jenkins中下载sonar插件,目前插件为 SonarQube Scanner for Jenkins,如果是内网就需要提前在有外网的服务器上下载好
安装完成后,在 系统管理->系统设置中,找到SonarQube servers模块,填写服务器信息:
全局工具配置
其中认证token需要登陆sonar后,点击Administrator->security->user,点击token按钮,输入key后再点击generate进行生成
(2)在jenkins中新建一个自由风格项目
源码管理这里不再详述,选择svn或者git都可以,不过git要记得在github上设置好webhook
触发器也不再此详述,git的话,勾选GitHub hook trigger for GITScm polling选项,则每次有push操作,都将触发构建。
构建环境,建议勾选Delete workspace before build starts选项
<1>构建,如果使用gradle进行构建,需要先在 系统管理->全局工具配置中,配置好gradle的安装位置,若系统中没有安装,建议勾选自动安装,name随意输入,maven构建同理。
gradle构建,选择invoke gradle,同时在高级选项中,输入task命令clean build -x test
maven构建,在Goals and options处输入命令clean compile package -Dmaven.test.skip=true,
<2>执行代码分析,新增一个构建步骤,选择Execute SonarQube Scanner,选择你的jdk版本,若没有,请在全局工具配置中配置好jdk位置。再选择好sonarqube scanner的版本。
之后,在Analysis properties处,输入sonar的检查参数,
#项目名称和版本(必填项)
sonar.projectName=kang-register
sonar.projectVersion=2.3.1.RELEASE
sonar.language=java
#源码位置(必填项,相对于jenkins的workspace路径,例如,我此时的绝对路径为/home/jenkins_workspace/new)
sonar.sources=/home/jenkins_workspace/new/kang-register/kang-register-registry-starter/src/main/java/
#编译后的class位置(必填项,旧版本此项可不填,建议还是填入,相对路径同上)
sonar.java.binaries=/home/jenkins_workspace/new/kang-register/kang-register-registry-starter/target/classes
后面jvm的启动参数项,可以参考GC优化策略。新手略过
整合具体过程:
管理添加用户:
二.点击新建任务,创建一个maven项目任务:
三.具体参数配置:
1.一般参数设置
下面两个参数为禅道所需的参数,内容不需要填写:
如果使用git标签部署,则需要配置git标签,如果部署最新版本,以下则不需要配置:
、
如果上面采用git标签部署,则指定分支处填写上面的名称,如下,如果不使用git标签部署,则指定分支,或者用*/master
2.Sonar扫描配置:
#项目key (随意输入,必填项)
sonar.projectKey=2020-12-15-kang-register
#项目名称和版本(必填项)
sonar.projectName=kang-register
sonar.projectVersion=2.3.1.RELEASE
sonar.language=java
#源码位置(必填项,相对于jenkins的workspace路径,例如,我此时的绝对路径为/home/jenkins_workspace/new)
sonar.sources=/home/jenkins_workspace/new/kang-register/kang-register-registry-starter/src/main/java/
#编译后的class位置(必填项,旧版本此项可不填,建议还是填入,相对路径同上)
sonar.java.binaries=/home/jenkins_workspace/new/kang-register/kang-register-registry-starter/target/classes
3.build以及执行脚本配置,可以选择:
可以自己写脚本文件执行,也可以自己直接写shell:
4.邮箱通知设置:
5.执行部署
可选择相应的git tag部署,如果是非标签部署则没有此项:
开始部署:
6.扫描结果查看
部署成功之后可查看sonar扫描报告:
点进去可查看具体问题:
点击more可以看到下载扫描报告:
7.jenkin集成到禅道配置
配置jenkins:
版本库配置:
构建jenkins任务
执行jenkins: