Jenkins自由风格项目如何在构建中止/失败时远程执行Shell脚本?
解决Jenkins自由风格项目仅在构建中止/失败时执行远程Shell脚本的方案
一、插件选择与基础配置
首先确保安装Publish Over SSH插件(你之前尝试的ssh、ssh-agent插件主要用于构建过程中的身份认证,并非构建后远程执行命令的工具):
- 进入「Manage Jenkins」→「插件管理」,搜索并安装该插件,安装完成后重启Jenkins
- 全局配置远程主机:进入「Manage Jenkins」→「Configure System」,找到「Publish over SSH」区块,添加远程主机的SSH连接信息(主机地址、用户名、密钥/密码、远程工作目录),点击「Test Configuration」确认连接正常
二、配置仅在构建中止/失败时触发远程脚本
进入你的自由风格项目配置页面:
- 拉到「构建后操作」区域,点击「Add post-build action」,选择「Send files or execute commands over SSH」(这就是你要找的远程执行SSH命令的选项)
- 在「Exec command」输入框中填写要在远程主机执行的Shell脚本内容
- 找到该操作的「Run condition」(部分版本显示为「Run only if build fails」扩展选项),勾选Aborted和Failed状态,这样只有构建中止或失败时才会触发这个远程命令
如果你的插件版本没有直接的状态勾选选项,可配合Conditional BuildStep插件实现:
- 安装该插件后,在「构建后操作」添加「Conditional step (single)」
- 设置条件为「Build status is failure or aborted」
- 在条件内部添加「Send files or execute commands over SSH」操作,配置远程脚本内容
三、排查「找不到远程执行选项」的问题
- 确认安装的是Publish Over SSH插件,而非其他同名或类似功能的插件
- 插件安装后必须重启Jenkins,否则新的构建后操作选项不会显示
- 检查Jenkins版本与插件版本的兼容性,过旧的Jenkins版本可能不支持该插件的最新功能
内容的提问来源于stack exchange,提问作者ashish_k
相关产品推荐
相关产品推荐

