1.安装Publish Over SSH插件
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH
查看是否安装成
2.Publish over SSH的公共配置(系统配置)
系统管理→系统配置→Publish Over SSH
公共配置说明:
Passphrase:密码(key的密码,如果你设置了)
Path to key:key文件(私钥)的路径
Key:将私钥复制到这个框中
Disable exec:禁止运行命令
私有配置说明:
SSH Server Name:标识的名字(随便你取什么,一般根服务器相关,下面要用到)
Hostname:需要连接ssh的主机名或ip地址(建议ip)
Username:用户名
Remote Directory:远程目录(就是上传的目录)
点击高级选项
私有配置的高级选项:
Use password authentication, or use a different key:可以替换公共配置(选中展开的就是公共配置的东西,这样做扩展性很好)
Passphrase:密码(可以替换公共配置的密码,但是这里必须选择Use password....复选框)
Port:端口(默认22)
Timeout (ms):超时时间(毫秒)默认即可
Disable exec:禁止运行命令
测试配置(Test Configuration)
3.项目配置
XX项目->配置->增加构建步骤基本配置说明:
Name:对应Publish Over SSH中的私有配置SSH Server Name
Transfer Set
Source files:需要上传的文件(相对于工作区的路径。可以填写多个,默认用,分隔, **/*
表示这个job的工作目录下所有的文件和目录。)
Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。通常留空
Remote directory:远程服务器目录(比如我这里的test,那么加上 公共配置(系统配置)->私有配置->Remote Directory 最后就是 /xcdata/test/)
高级
高级配置说明:
Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:/.log,/.tmp,.Git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
No default excludes:禁止默认的排除规则(具体的自己看帮助)
Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
Flatten files:只上传文件,不创建目录(除了远程目录)
Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式)
Exec timeout (ms):运行脚步的超时时间(毫秒)
Exec in pty:模拟一个终端执行脚步
Add Transfer Set:增加一个配置
坑说明:
1.Transfer Set Source files配置
发生的坑(SSH: Transferred 0 file(s)):
原因
Transfer Set Source files 这里用的是相对工作区的路径,比如你这个jenkins的工作目录为/xcdata/docker-jenkins/jenkins/jenkins_home/workspace/tj,那这的目录只能是相对于这个目录下的(不要填绝对路径,要写相对路径),
比如如果是要全部到远程,就填 **/*,如果是单目录(如/xcdata/docker-jenkins/jenkins/jenkins_home/workspace/tj/test/app.jar),就填 /test/*
2.Exception when publishing, exception message错误
一般这错误有2个原因:
1.磁盘空间满了,清理磁盘空间即可
df -h (查看磁盘空间)
2.没有权限
Publish Over SSH配置中的用户密码没有创建文件的权限