一,自动化部署
“自动化”的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序。
二,环境配置
- 创建虚拟机安装 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
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" password="123456"
roles="manager-gui,manager-script,manager-jmx,manager-status" />
五,jenkins主体程序安装
把 jenkins.war 放在 Tomcat 解压目录/webapps 目录下
打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集
vim /opt/tomcat/conf/server.xml
71 <Connector port="8080" protocol="HTTP/1.1"
72 connectionTimeout="20000"
73 redirectPort="8443" URIEncoding="UTF-8"/>
启动 Tomcat 并通过浏览器访问,解锁 Jenkin
网址示例:http://192.168.70.131:8080/jenkins
查看/root/.jenkins/secrets/initialAdminPassword
文件内容填入文本框
六,系统初始化配置
系统管理界面
全局安全配置
局工具配置:Maven Configuration
全局工具配置:JDK
全局工具配置:Mave
全局工具配置:Git[若有] 不使用 Git,所以删除即可。
最后 保存
安装插件
七,创建工程
创建工程
指定工程名称和工程类型
源码管理
配好的效果
注意:此时 Jenkins 的工作区中还没有代码,需要执行一次构建操作之后Jenkins 才会下载代码
八,构建
构建后操作
九,手动构建
Jenkins 使用天气状况来表示构建成功率
十,构建触发器
配置,当访问 http://192.168.70.131:8080/jenkins/job/apple/build?token=ATGUIGU _TOKEN 就会自动触发自动构建
远程触发的基本原理是 SVN 服务器给 Jenkins 项目特定的 URL 地址发送请求,但必须以请求参数的形式携带一个特定值,这个特定值就是这里的“身份验证令牌”。
十一, 获取 crumb 值
携带 API Token 访问下面地址:
http://admin:090d592c760bf922d554ed4b1abb2137@192.168.70.131:8080/jenkins/crumbIssuer/api/xml
则触发 Jenkins 远程构建时需要携带的请求消息头就是:Jenkins-Crumb:5dbccaf47a86bf5b675456f58855fe16
十二,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