相关文章推荐
腼腆的烈马  ·  android studio ...·  1 年前    · 

一、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

1.下载jenkins的war包: 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的就好了, updates.jenkins.io/update-cent… tomcat重新启动后就可以正常使用了。

解决jenkins下载插件慢的问题: 原有的: updates.jenkins.io/update-cent… 将原有的: updates.jenkins.io/update-cent…

http://mirror.esuni.jp/jenkins/updates/update-center.json

更换方法: 找到插件管理-> 高级(Tab),找到升级站点下面的url input框, 复制到这里 设置好后,需要重启jenkins。 不管你是 war包扔在tomcat里启动的, 还是配置方式启动的, 还是docker里面启动的, 都要重启。 访问 http://localhost:8084/jenkins 初始密码:

我的密码是:606e96f75d0f40428f467d9d2d1963b3 点击continue,跳转到如下页面

选择安装Install suggested plugins,等待其自动安装完成

各种插件安装完后,开始设置账户信息,以后用此账户登录jenkins

我设置的是:root/123456 全名:zhengja 邮箱:zhengja@dist.com.cn 点击:保存并完成 实例配置:

最好改成自己本机的ip。 然后进入首页:

安装完成,开始使用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

4.2 配置jdk

4.3 配置git

Git安装路径(Linux命令:which git、windows 命令: where git)

4.4 配置maven

5、Configure System (系统配置)

5.1 配置jenkins URL

5.2 配置邮箱的全局配置

5.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>    
<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">    
            本邮件由系统自动发出,无需回复!<br/>            
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
                    <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>    
<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%" />
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
    </table>    
</body>    
</html>
5.2.5 邮箱发送成功效果:在下方的测试项目中使用到了

5.3 配置系统FTP

需要插件--> Publish over FTP 一般部署完成后都会对文件做下备份,使用前需要先去系统管理-->系统配置中先配置下FTP服务器.

需要填写的配置还是比较少的,填写完成后点击下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 (自由风格的项目) 点击-->“保存”

后期实现1: 项目配置邮箱

后期实现:自动从github下拉-->jenkins工作空间-->打包成war-->部署到本地或远程tomcat webapps下-->自动发布项目-->项目自动构建信息发送到指定邮箱。

增加邮箱配置功能:需要插件-->Email Extension Plugin

项目配置邮箱: 点击-->保存

点击 “#27” -->查看构建信息 部分控制台信息:可以看出部署成功和邮箱发送成功!

邮箱发送成功效果:

后期实现2: 项目配置FTP

说明: 这个插件可以将构建的产物(例如:Jar,war)发布到FTP中去 需要插件--> Publish over FTP 在添加构建后操作选择ftp插件: 解释下中间的这个 Remove prefix 配置,这个配置用于裁剪路径用的。比如我这里配置的是target,那么文件上传后所在路径就是/test/upload/springboot-test-github-0.0.1-SNAPSHOT.war。还是很好理解的 不过,这样设置,每次构建的产物还是会覆盖之前的,没有达到想要效果。 项目设置基本界面:点击Remote directory后面的-->高级 生成的目录结构:/builds/2019/09/25/springboot-test-github-39/springboot-test-github-0.0.1-SNAPSHOT.war

二、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节点环境搭建

Linux节点环境搭建

2、jenkins配置Linux_127节点工具

配置Linux_127 节点的工具路径 系统管理-->全局工具配置:

配置jdk:
配置Git:
配置Maven:

3、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

其中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" = "" ]
      echo "no tomcat pid alive"
      kill -9 $pid
    #上面注释的或者下面的
    #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

保存执行”构建“-->成功! 宇宙小神特别萌 Java 开发工程师 99.1k

粉丝