[搭建完整jenkins发布环境(三)]Publish Over SSH插件使用详解及常见问题解析
一、前言Publish Over SSH插件是jenkins里面必不可少的插件之一,主要的功能有两个把jenkins服务器上的文件,传输到远程tomcat服务器的指定目录。远程执行shell命令和脚本。安装步骤:系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH二、功能说明2.1 基础功能文件传输功能可以把jenkins打包好...
一、前言
Publish Over SSH插件是jenkins里面必不可少的插件之一,主要的功能有两个
- 把jenkins服务器上的文件,传输到远程tomcat服务器的指定目录。
- 远程执行shell命令和脚本。
安装步骤:
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH
二、功能说明
2.1 基础功能
- 文件传输功能可以把jenkins打包好的war包传输到tomcat服务器的webapps目录下,实现了war包的传输。
- 远程执行命令功能可以实现,对远程tomcat服务器的启动,关闭,以及war包的备份等。
通过以上两个功能就可以实现对打包好的war包的分发和发布。
2.2 引申功能
- 每次发布时传送配置文件,或者将发布的war包备份到指定目录(按日期生成)。
- 执行远程命令,实现关闭负载均衡器,打印执行结果,打印启动日志,等。
最终目的是,可以通过jenkins控制台的log监控整个发布流程,不需要在登陆服务器查看。
三、插件使用
3.1 环境配置
系统配置–Publish over SSH
- 配置远程tomcat服务器的ip,登录用户名和密码
- Remote Directory 远程工作目录,非常重要,和文件传输关系很大,后面会说明
配置好后,test configuration如果返回成功,就证明你可以ssh到远程主机
3.2 文件传输的说明
source相对路径问题,不是.Jenkins/workspace,而是.jenkins/workspace/[project]/\
- 如何确定服务器上的相对路径? jenkins主目录+workspace+jenkins页面创建的任务名(可以在workspace目录下找到)
/var/lib/jenkins/workspace/jenkins item name
示例:
如果 /var/lib/jenkins/workspace/jenkins item name/admin/target/bian.war的话
在下图的1中只要填写 /admin/target/bian.war就可以找到。**/war包 可以匹配,但是不精确。
- 去前缀
如果不去前缀,上图的例子会在远程目录基础上生成如下目录
admin/target/bian.war
而我们想要的只有war包,所以通过remove prefix 可以把admin/target去掉,只生成bian.war包文件。 - 远程目录
这里我给出一个较复杂的例子,因为带日期的自动生成。需要先勾选下面的checkbox。- 在3.1环境配置中我们配置过remote directory /home/bian/jenkinsfiles 这就是远程根目录。需要在远程服务器创建该目录
- 下图中3指的是根目录基础上创建的目录。
示例中配置意思是每次生成 /home/bian/jenkinsfiles/warbackup/2019-06-18_时分秒文件夹,并把bian.war存放到日期文件夹中。
3.3 远程执行命令的说明
这个比较简单,很少有人遇到很大门槛,顶多是命令执行过程中的报错。
- 命令行和文件传输要求至少有一个,要不这个模块就没意义
- 如果出错时想中断后面的执行,可以加上exit=-1。jenkins如果发现命令执行返回值不等于0,则不会继续执行后续发布操作。
Publish Over SSH比较好的博客:
https://www.cnblogs.com/zz0412/p/jenkins_jj_10.html
更多推荐
所有评论(0)