主要讲述:Windows Jenkins的安装及使用
一、Windows Jenkins的安装、配置及使用
部署说明:jenkins服务器和应用服务器在一台机器上的情况。
服务器环境:Windows-jdk1.8、git、maven3.3.9、tomcat8、jenkins.war
jenkins部署:在Windows-Tomcat下部署的jenkins.war(稳定版)
说明:jdk大于1.5,tomcat7以上,maven3.0以上,要不然会出现各种问题。
jenkins环境部署流程:
1、Tomcat下安装Jenkins
首先配置tomcat用户密码:在jenkins用做凭证用
进入tomcat目录,新增tomcat用户及权限 conf/tomcat-users.xml
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin-gui"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="tomcat,role1,admin-gui,manager,manager-gui,manager-script,manager-status"/>
1.下载jenkins的war包:https://jenkins.io/index.html
2.安装jenkins
拷贝jenkins.war到tomcat的webapps的文件下,及完成jenkins的安装.
tomcat打印出现的问题:
WARNING [Finalizing set up] hudson.model.UpdateCenter.updateDefaultSite Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugin upgrades may fail.
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
问题解析:jenkins会显示该jenkins实例似乎已离线
原因是就是升级站点的链接https://updates.jenkins.io/update-center.json默认是https的
问题解决方式:输入网址http://localhost:8085/jenkins/pluginManager/advanced
最底下有个【升级站点】,把其中的链接由https改成http的就好了,http://updates.jenkins.io/update-center.json, tomcat重新启动后就可以正常使用了。
解决jenkins下载插件慢的问题:
原有的:https://updates.jenkins.io/update-center.json
将原有的:http://updates.jenkins.io/update-center.json换成下面的下载源连接
http://mirror.esuni.jp/jenkins/updates/update-center.json
更换方法: 找到插件管理-> 高级(Tab),找到升级站点下面的url input框, 复制到这里
设置好后,需要重启jenkins。
不管你是 war包扔在tomcat里启动的, 还是配置方式启动的, 还是docker里面启动的, 都要重启。
访问 http://localhost:8084/jenkins
初始密码:
我的密码是:606e96f75d0f40428f467d9d2d1963b3
点击continue,跳转到如下页面
jenkins页面.png
选择安装Install suggested plugins,等待其自动安装完成
jenkins pligins.png
各种插件安装完后,开始设置账户信息,以后用此账户登录jenkins
jenkins user.png
我设置的是:root/123456 全名:zhengja 邮箱:zhengja@dist.com.cn
点击:保存并完成
实例配置:
最好改成自己本机的ip。
然后进入首页:
jenkins已就绪.png
安装完成,开始使用jenkins。
2、更改jenkins工作空间(可选,不一定要更改)
jenkins工作空间默认是在c盘,不建议已有项目的情况下更改工作空间。
jenkins更改工作空间
3、jenkins配置插件
[jenkins常用插件详解](jenkins插件配置/Jenkins 插件详解.md)
3.1 Manage Plugins (插件管理)
jenkins开始自动默认安装的插件(这里不说)
必要的插件:
Deploy to contontainer Plugin 部署插件:如部署到tomcat
Git Plugin 支持使用Github、GitLab、Gerrit等系统管理代码仓库
Maven Intergration plugin maven插件
可选插件:
GitHub Bran Soerce Plugin github需要的插件
Email Extension Plugin 这个插件是邮件通知的扩展,支持定制邮件内容,触发条件以及邮件接收者,功能比基本邮件通知要灵活强大的多.
Matrix Authorization Strategy Plugin : 这个插件提供了基于矩阵的授权策略,支持全局和项目级别的配置
4、Global Tool Configuration (全局工具配置)
前提:windows需要安装有 maven、tomcat、git、jdk
4.1 配置 maven settings
tool maven settins .png4.2 配置jdk
tool jdk.png4.3 配置git
Git安装路径(Linux命令:which git、windows 命令: where git)
tool git.png
4.4 配置maven
tool maven.png5、Configure System (系统配置)
5.1 配置jenkins URL
系统配置jenkins.png5.2 配置邮箱的全局配置
邮箱默认配置.png 邮箱默认配置2.png 邮箱默认配置3.png5.2.2 SMTP 和 Password(授权码) 获取:
Password 不是邮箱或qq号密码,是邮箱的授权码。
[获取qq的授权码和SMTP server.md](其它/获取qq的授权码和SMTP server.md)
5.2.3 Default Subject 默认值:
构建通知 : $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
5.2.4 Default Content 默认值:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>
5.2.5 邮箱发送成功效果:在下方的测试项目中使用到了
邮箱发送成功效果1.png 邮箱发送成功效果2.png5.3 配置系统FTP
需要插件--> Publish over FTP
一般部署完成后都会对文件做下备份,使用前需要先去系统管理-->系统配置中先配置下FTP服务器.
FTP配置1.png
需要填写的配置还是比较少的,填写完成后点击下Test Configuration按钮测试下自己的配置是否正确.
注意:
这里的Remote Directory是指你能够工作的路径。举个例子,比如我指定路径为/dir1的话,那么我就只能上传到此目录下的子目录。如果某天我想上传到/dir2,不好意思,这个路径你访问不到。限定目录后可以起到一点隔离的作用,算是一个安全措施吧
配置无误后转到项目配置页FTP。在下方有 项目配置FTP 实例.
6、创建测试项目-->tomcat+jenkins同一台机器上
环境:windows+tomcat+jenkins+maven+jdk+git
项目来源:idea --> github
注意:这是本机tomcat服务器和jenkins在同一台电脑上,如果不在一台服务器会报403!
初期实现:项目配置-->自动发布到tomcat服务器
初期实现:自动从github下拉-->jenkins工作空间-->打包成war-->部署到本地tomcat webapps下-->自动发布项目。
创建一个任务:
输入一个任务名称:sptingboot-test-github
选 Freestyle project (自由风格的项目)
点击-->“保存”
创建一个自由风格的项目9.png
后期实现1: 项目配置邮箱
创建一个自由风格的项目8.png后期实现:自动从github下拉-->jenkins工作空间-->打包成war-->部署到本地或远程tomcat webapps下-->自动发布项目-->项目自动构建信息发送到指定邮箱。
增加邮箱配置功能:需要插件-->Email Extension Plugin
创建一个自由风格的项目10.png
项目配置邮箱:
创建一个自由风格的项目6.png
创建一个自由风格的项目7.png
创建一个自由风格的项目8.png
点击-->保存
创建一个自由风格的项目9.png
点击 “#27” -->查看构建信息
部分控制台信息:可以看出部署成功和邮箱发送成功!
创建一个自由风格的项目12.png
邮箱发送成功效果:
邮箱发送成功效果1.png后期实现2: 项目配置FTP
说明: 这个插件可以将构建的产物(例如:Jar,war)发布到FTP中去
需要插件--> Publish over FTP
在添加构建后操作选择ftp插件:
FTP配置3.png
解释下中间的这个
Remove prefix
配置,这个配置用于裁剪路径用的。比如我这里配置的是target,那么文件上传后所在路径就是/test/upload/springboot-test-github-0.0.1-SNAPSHOT.war。还是很好理解的FTP配置4.png
不过,这样设置,每次构建的产物还是会覆盖之前的,没有达到想要效果。
项目设置基本界面:点击Remote directory后面的-->高级
FTP配置5.png
生成的目录结构:/builds/2019/09/25/springboot-test-github-39/springboot-test-github-0.0.1-SNAPSHOT.war
FTP配置1.png
二、jenkins 配置节点及使用
windows_jenkins机器环境:tomcat+jenkins+jdk
Linux_127 节点环境:git、jdk1.8、maven、tomcat8
Linux_127 节点工具路径:
java : /usr/local/jdk1.8
maven : /usr/local/apache-maven-3.6.2
git : /usr/local/git
tomcat: /usr/local/apache-tomcat-8.5.46
1、Linux_127节点环境搭建
2、jenkins配置Linux_127节点工具
配置Linux_127 节点的工具路径
系统管理-->全局工具配置:
配置jdk:
配置Liunx节点工具1.png配置Git:
配置Linux节点工具2.png配置Maven:
配置Linux节点工具3.png3、jenkins 配置Linux_127节点
[Jenkins 节点slave配置.md](jenkins节点slave配置/Jenkins 节点slave配置.md)
6、jenkins使用Linux_127节点部署项目
项目来源:github
构建流程:执行构建->从github拉取项目-->保存在Linux_127节点的 .jenkins2/workspace 工作空间下-->打成war-->部署到Linux_127节点上的tomcat下-->发布项目
创建一个自由风格的任务-->任务名称: Linux127-sptingboot-test-github2
Linux_127节点部署项目2.png
Linux_127节点部署项目3.png
其中deploy.sh脚本->放到项目大根目录下:
#!/usr/bin/env bash
#编译+部署项目站点
#需要配置如下参数
# 项目路径, 在Execute Shell中配置项目路径, pwd 就可以获得该项目路径
# export PROJ_PATH=这个jenkins任务在部署机器上的路径
# export PROJ_PATH=/root/.jenkins2
# 输入你的环境上tomcat的全路径
# export TOMCAT_APP_PATH=tomcat在部署机器上的路径
# export TOMCAT_APP_PATH=/usr/local/apache-tomcat-8.5.46
### base 函数
killTomcat()
{
pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
echo "tomcat Id list :$pid"
if [ "$pid" = "" ]
then
echo "no tomcat pid alive"
else
kill -9 $pid
fi
#上面注释的或者下面的
#cd $TOMCAT_APP_PATH/bin
#sh shutdown.sh
}
cd $PROJ_PATH/workspace/Linux127-springboot-test-github
# mvn clean install
# 停tomcat
killTomcat
# 删除原有工程
#rm -rf $TOMCAT_APP_PATH/webapps/ROOT
#rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -rf $TOMCAT_APP_PATH/webapps/springboot-test-github
rm -f $TOMCAT_APP_PATH/webapps/springboot-test-github.war
# 复制新的工程到tomcat上
cp $PROJ_PATH/workspace/Linux127-springboot-test-github/target/springboot-test-github-0.0.1-SNAPSHOT.war $TOMCAT_APP_PATH/webapps/
cd $TOMCAT_APP_PATH/webapps/
mv springboot-test-github-0.0.1-SNAPSHOT.war springboot-test-github.war
# 启动Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh
保存执行”构建“-->成功!
效果:
Linux_127节点部署项目4.png
网友评论