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