Jenkins实现⽂件上传到远程服务器(PublishOverSSH)1.安装Publish Over SSH插件
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH
查看是否安装成attain
抛锚式教学
2.Publish over SSH的公共配置(系统配置)
系统管理→系统配置→Publish Over SSHsize mismatch
公共配置说明:
Passphra:密码(key的密码,如果你设置了)
Path to key:key⽂件(私钥)的路径
Key:将私钥复制到这个框中
Disable exec:禁⽌运⾏命令
私有配置说明:
silly是什么意思
SSH Server Name:标识的名字(随便你取什么,⼀般根服务器相关,下⾯要⽤到)
Hostname:需要连接ssh的主机名或ip地址(建议ip)
Urname:⽤户名
国葬是什么意思Remote Directory:远程⽬录(就是上传的⽬录)
点击⾼级选项
私有配置的⾼级选项:
U password authentication, or u a different key:可以替换公共配置(选中展开的就是公共配置的东西,这样做扩展性很好)Passphra:密码(可以替换公共配置的密码,但是这⾥必须选择复选框)
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 parator:分隔符(配置Transfer Set Source files的分隔符。如果你这⼉更改了,上⾯的内容也需要更改)
No default excludes:禁⽌默认的排除规则(具体的⾃⼰看帮助)
Make empty dirs:此选项会更改插件的默认⾏为。默认⾏为是匹配该⽂件是否存在,如果存在则创建⽬录存放。选中此选项会直接创建⼀个⽬录存放⽂件,即使是空⽬录。(个⼈理解)
pig什么意思
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)):
longman
原因
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配置中的⽤户密码没有创建⽂件的权限