Jenkins(一)
1、服务器配置
安装jdk
https://www.cnblogs.com/adawoo/p/11665532.html
安装Tomcat
https://www.cnblogs.com/wangbiubiu/p/9732626.html
Tomcat配置,应用发布子系统tomcat
Tomcat服务器的账号密码,配置文件位置: /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" passwprd="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
2、Jenkins安装
docker安装Jenkins
长期版本: docker pull jenkins/jenkins:lts
每周迭代版本: docker pull jenkins/jenkins
使用Jenkins.war安装
下载jenkins.war,放在Tomcat/webapps下,启动Tomcat自动安装
设置用户名密码
3、Jenkins配置
系统管理
全局安全配置
-
允许用户注册
全局工具配置
-
指定maven的settings.xml
-
指定git的安装路径,使用github 的webhook钩子程序,可以在push代码后,Jenkins触发钩子程序自动部署
-
指定JAVA_HOME,取消自动安装
-
指定MAVEN_HOME,取消自动安装
-
如果使用docker,指定docker安装路径
插件管理
可以查询已安装的插件
-
安装 deploy to container 插件 : 将应用发布到tomcat下
-
安装 Publish Over SSH插件: 通过SSH连接其他Linux机器,远程传输文件及执行Shell命令 。需要进行如下设置,在 系统配置 Publish over SSH ,
-
Passphrase: 密码(key的密码。如果有设置)
-
Path to key:私钥的位置
-
Key:私钥的内容。如果此处填入了值,则以此处的值为准,会忽略掉Path to key的配置
-
SSH Servers:服务器的配置
-- Name:名称(自定义)
-- Hostname:服务器地址
-- Username:用户名
-- Remote Directory:默认远程服务器的地址
注意:在配置上述内容时,要首先在jenkins服务器上生成私钥,然后将公钥推送到服务器上
-
-
安装 allure 插件:用来生成allure测试报告,安装后先去allure官网下载allure.zip,解压后添加到path,最后在Jenkins的全局工具配置中配置allure command
2、使用
new item新建一个项目,选择 freestyle project
项目配置
源码管理:项目源码,可以选择git 或 svn,需要添加 git/svn 密码,使用git需要安装git
构建触发器:
1、 触发远程构建 :使用Jenkins的URL(http://ip:8080/jenkins/ job/test/build?token=TOKEN_NAME
)远程构建
-
身份验证令牌,设置token的值,如设置为 agru_token,则访问 http://ip:8080/jenkins/ job/test/build?token=agru_token,则会触发Jenkins远程构建,可以在Linux中使用curl访问这个URL触发构建,可编写为shell脚本
curl -X post -v -u admin:*** -H "Jenkins-Crumb:***" jenkins_url
-X:指定请求参数
-v:显示响应结果
-u:携带用户名、密码,用户名为admin,用户为安装Jenkins的要求填写的初始密码,在 initialAdminPassword中
-H:携带请求消息头信息,Crumb值在系统管理//全局安全配置中,百度查询,一般不用
2、 Build periodically (定时构建),语法:分 时 天 月 星期 ,如 00 10 * * *,即每天的10点
构建环境 :
构建 :
1、选择调用顶层maven目标(invoke top-level maven targets) 使用maven构建
-
目标为 maven命令,如 :
clean install,清理后安装,打成war包
mvn test -Dmaven.test.failure.ignore=true 。执行项目测试,忽略失败case
2、send files or execute command over ssh(也可以在构建后操作中进行此操作),需要先下载插件 Publish Over SSH
(Transfer:执行的命令需要把打包过的项目源码从jenkins_home/workspace移动到Tomcat/webapps下,然后再启动tomcat服务,完成环境部署,也可以使用shell脚本来执行)
-
Source files:源文件地址,地址的目录是相对于jenkins workspace的目录,如果只需要执行命令不需要传输文件的时候,此处可以为空
-
Remove prefix:去除的文件地址。在Source files输入框中填入的地址,会默认在服务器下创建相同的文件夹,所以需要将我们不需要的文件夹在这里剔除掉
-
Remote directory:远程服务器接收文件的地址
-
Exec command:文件传输任务执行完毕后,在远程服务器上执行的命令
构建后操作 :
1、deploy war/ear to a container,需要先下载 deploy to container插件
-
WAR/EAR files :war包的路径,maven工程一般是 target/***.war
-
context path:访问项目的URL虚拟路径
-
container:添加Tomcat,填写Tomcat的用户名和密码(见1、中的Tomcat配置),url
2、allure report,需要先下载 allure Jenkins plugin 插件,然后配置allure command
-
path:path名称表示在项目根目录(workspacce)下生成此文件夹,文件夹用来保存生成html报告之前所依赖的json,xml,txt等类型文件
-
report path: Report path名称,这里的path同样会在项目根目录(workspacce)下生成,同时保存最后的html报告
3、send build artifacts over SSH,配置信息同 构建
邮箱设置:
系统管理->系统设置中设置管理员邮箱 Jenkins Location
问题
1、如果发现Jenkins构建项目的版本 不是们提交的最新版本,可以在svn的URL后面加上@HEAD,让Jenkins获取svn的最新提交版本
2、github webhook设置在settings下的webhooks https://github.com/qiniu/webhook