Jenkins+SVN 持续集成环境搭建
Jenkins+SVN 持续集成环境搭建
- 系统结构总述
创建虚拟机安装 Linux 系统
版本控制子系统
– Subversion 服务器
– 项目对应版本库
–版本库中钩子程序
持续集成子系
–JDK
–Tomcat
– Maven
– Jenkins
① 主体查询
② SVN插件
③ Maven插件
④ Deploy to Web Container插件
应用发布子系统
–JDK
–Tomcat - 版本控制子系统
这里记录版本库的访问账号和密码

注意:在svnserve.conf 文件中 anon-access 一定要打开注释并设置为 none

- 应用发布子系统
这里记录Tomcat服务器的账号和密码
在配置文件:/opt/tomcat/conf/tomcat-users.xml
<rolerolename="manager-gui"/> <rolerolename="manager-script"/> <rolerolename="manager-jmx"/> <rolerolename="manager-status"/> <user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
- Jenkins主体程序安装配置
(1)把jenkins.war放在Tomcat解压目录/webapps目录下
(2)打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集
vim/opt/tomcat/conf/server.xml
<Connectorport="8080"protocol="HTTP/1.1" 72 connectionTimeout="20000" 73 redirectPort="8443"URIEncoding="UTF-8"/>
(3)启动Tomcat并在浏览器中访问
网址示例:http://192.168.70.131:8080/jenkins
(4)解锁Jenkins
① 解锁界面
依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框
在Linux命令框执行命令
cat /root/.jenkins/secrets/initialAdminPassword
将查询结果输入到输入框中,这里同时也是admin账号的密码

② 选择插件安装方式:这里使用推荐的


安装时出现“X”是由于网络导致安装失败,重新安装即可。
③ 创建账号或以管理员身份继续,可以选择使用admin账号继续

④ 使用Jenkins
5. 系统初始化配置
(1)系统管理界面

(2)全局安全配置

(3)全局工具配置:Maven Configuration

① 全局工具配置:JDK

② 全局工具配置:Maven

③ 全局工具配置:Git

最后点击保存退出即可
6. 安装插件

- 创建工程
(1)创建工程

(2)指定工程名称和工程类型

(3)源码管理



配好的效果:
注意:此时Jenkins工作区还没有代码,需要执行一次构建操作后Jenkins才会下载代码

(4)构建


(5)构建后操作





(6)手动构建

(7)构建触发器

远程触发的基本原理是 SVN 服务器给 Jenkins 项目特定的 URL 地址发送请求, 但必须以请求参数的形式携带一个特定值,这个特定值就是这里的“身份验证令牌”。 比如我们这个项目的地址触发地址是: http://192.168.70.131:8080/jenkins/job/ProOne/build身份验证令牌是: ATGUIGU_TOKEN ,那么最终的访问地址就是: http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN,触发访问地址中Jenkins 访问地址是根据实际情况改变的,项目名称根据实际 情况改变,其他都不变。
(8)获取crumb值


携带 APIToken 访问下面地址: http://admin:090d592c760bf922d554ed4b1abb2137@192.168.70.131:8080/jenkins/crumbIssuer/api/xml

则触发 Jenkins 远程构建时需要携带的请求消息头就是: Jenkins-Crumb:5dbccaf47a86bf5b675456f58855fe16
(9)Linux的curl命令
Linux 的 curl 命令用来发送 HTTP 请求:
-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名/密码
-H 参数:携带请求消息头信息
curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口 号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]
案例:
curl -X post -v -u admin:2f6bff33bda14baba83ba1c002045f05 -H "Jenkins-Crumb:88a12946e07d82b3b0d567c7c4610c9a" http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN
(10)编辑 SVN版本库中的钩子程序
① 钩子程序由 post-commit.tmpl 复制得到
这里注意不要使用任何扩展名。如果按照我们习惯的使用.sh 扩展名则钩 子程序无法正常工作。记得使用 chmod 命令设置为可执行权限
② 把原有内容注释,加入 curl 命令

(11)测试
在Eclipse中提交修改,在页面上查看显示内容变化
(12)补充
如果发生 Jenkins 服务器从 SVN 服务器下载代码不是最新版的情况,那么就在 SVN 服务器的 URL 地址后面加上@HEAD 强制要求下载最新版。

更多推荐
所有评论(0)