jenkins+Publish Over SSH 提示:Transferred 0 file(s)
之前公司用jekins来进行自动化发布,现在公司因没有运维,所以自己学习、并搭建了一个jenkins的环境来进行项目自动化部署。
不料在最后连接ssh后部署时,一直提示Transferred 0 file(s),个人理解为:传输文件为0。
现附上自己的问题描述和解决方法:
安装插件
系统管理→管理插件→可选插件→Artifact Uploaders→Publish Over SSH 安装即可。
配置远程服务器
如图所示是jenkins上的ssh插件的公有配置部分,下面详细讲解下(其实比较简单,但是自己遇坑了也就记录一下)
Passphrase:如果自己在本地生成的ssh key没密码的话,这里不需要填写
Path to key:这里填写私钥的地址
key:这里填写私钥的内容(cat ~/.ssh/id_rsa查看)
Name:这里自己填写一个好记的名字
Hostname:主机ip或者域名
Username:登录机器的用户名
Remote Directory:远程的操作目录(这个需要自己的对应的服务器上创建好目录,并且登录名对应的用户需要有相应的权限)
******注意:这种利用私钥访问的办法需要事先将你的公钥放置到对应服务器的~/.ssh/authorized_keys中(一般 利用ssh-copy-id 命令免密登录)*****
以上登录方式不推荐,点击“Use password authentication, or use a different key”,利用私有配置登录才是我们推荐的
Passphrase / Password:这里填写username登录名对应的密码(其他的配置这里就不叙述了,看字段名应该就能明白)
一般填写密码就能登录了,点击Test configuration,出现Success表示连接成功;但有时候会报如下错:
Failed to connect or change directory
[java.net.ConnectException: Connection refused: connect]]
这是由于服务器上的sshd服务没有开启导致的,登录到服务器上执行命令
sudo service sshd start //开启sshd服务
或者是如下错误
jenkins.plugins.publish_over.BapPublisherException: Failed to connect session for config [131]. Message [Auth fail]
这是由于账号密码不一致导致的,自行核查下账号密码.或者采用在私有配置中利用私钥来进行登录(这种方式参考上面的配置,在path to key 和key中填好相应的内容)
配置参数
在project中配置参数
保存后点击立即构建。在日志中出现如下的文字
SSH: EXEC: completed after 400 ms
SSH: Disconnecting configuration [8楼centos7-test] ...
SSH: Transferred 0 file(s)
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS
Finished: SUCCESS
去远程服务器的目录下查看文件,也未能找到。
说明文件发送失败。
当然已经提示传输0个文件,在系统配置时点击test如果成功的话那就是目录的问题。
查询了一些文档明白了具体的意思
- Source files
**/*
表示sskzmz这个job的工作目录下所有的文件和目录。 - Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。通常留空。
- Remote directory 该操作是基于设定的服务器目录进行。这里我的服务器配置是的/www. 因此这里应该写sites/sskzmz即可。
- Exec command 远程服务器执行的命令。例如可以输出 service nginx restart 或者/www/xx. sh 均可。
- 高级:
- Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:/.log,/.tmp,.Git/)
- Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
- No default excludes:禁止默认的排除规则(具体的自己看帮助)
- Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
- Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式)
- Flatten files:只上传文件,不创建目录(除了远程目录)
- Exec timeout (ms):运行脚步的超时时间(毫秒)
- Exec in pty:模拟一个终端执行脚步
- Add Transfer Set:增加一个配置
在jenkins中publish over SSH plugin插件的文档中说到Source files只写目录名称会自动添加/**,功能是匹配目标目录下的所有文件;
不过我试了试好像不大管用,不知道是版本原因还什么。
参考链接:
https://www.jianshu.com/p/7c961fd5975c
jenkins+Publish Over SSH 提示:Transferred 0 file(s)的更多相关文章
- SSH: Transferred 0 file(s) 解决
Jenkins搭建过程中,使用 Publish Over SSH 插件.发生 SSH: Transferred 0 file(s). 百度.google了几个小时,终于找到答案,特此记录. 配置如下: ...
- jenkins publish over ssh使用
1.在需要远程的ubuntu服务器上生成密钥,指令:ssh-keygen 一路默认下去,会在~/.ssh目录下生成 id_rsa(私钥).id_rsa.pub(公钥) 2.复制公钥文件id_rsa ...
- Jenkins publish over ssh 路劲配置问题 记录
每次通过jenkins 实现 maven项目编辑后 自动通过 ssh发布到 服务器的功能时,对配置的路劲有疑问,特整理出来 前提:服务器路径 /home/ubuntu/aps 目标: 构建后的j ...
- Jenkins publish over ssh 上传 文件夹 配置方式
需要把编译后 目录下的 lib文件夹下的jar包都上传到服务器上 1.配置 2.完成截图 3.服务器截图 注意: 真实脚本 建议写 全路径 注意:多条命令时 添加 英文分号
- jenkins使用Publish Over SSH中遇到的问题
在jenkins中想使用publish over ssh来在构建后发送XML或PNG文件至服务器,以便做其它的操作,安装完publish over ssh后,填加构建,发现在构建失败时,不传送文件,老 ...
- Jenkins通过Publish over SSH插件实现远程部署
Jenkins通过Publish over SSH插件实现远程部署 步凑一.配置ssh免秘钥登录 部署详情地址:http://www.cnblogs.com/Dev0ps/p/8259099.html ...
- Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署
配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...
- Jenkins的使用(三)-------Publish over SSH和Publish over FTP
七.构建后操作 1.使用Publish over SSH 1.左边菜单栏 Manage Jenkins --->ManagePlugins--->可选插件,然后搜索 Publish ...
- docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker
在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p : --name tomcat_xiao_volume ...
随机推荐
- vs下C# WinForm 解决方案里面生成的文件都是什么作用?干什么的?
Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需 ...
- select2的一些隐藏功能
select 3.5版本的说明文档里面存在 http://select2.github.io/select2/index.html option选项 sortResults query为查询字符串
- [leetcode] 2. Pascal's Triangle II
我是按难度往下刷的,第二道是帕斯卡三角形二.简单易懂,题目如下: Given an index k, return the kth row of the Pascal's triangle. For ...
- [LeetCode 题解]: Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- C++裁剪文件,截断文件,_chsize()
errno_t _chsize_s( int fd, __int64 size ); 详见msdn知识库 _chsize将文件裁剪为指定大小,大小的度量方法与 long ftell(FILE * fp ...
- [Erlang09]Erlang gen_server实现定时器(interval)的几种方法及各自的优缺点?
方法1: %%gen_server:部分call_back function. -define(TIME,1000). init([]) –> erlang:send_after(?TIME,s ...
- ML.NET Cookbook --- 1.如何从文本文件中加载数据?
使用ML.NET中的TextLoader扩展方法从文本文件中加载数据.你需要知道在文本文件中数据列在那里,它们的类型是什么,在文本文件中什么位置可以找到它们. 请注意:对于ML.NET只读取文件的某些 ...
- javascript AJAX简单原理及什么是ajax
AJAX简单原理供初学者理解 AJAX的原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其 ...
- 二十五、MongoDB 索引 和 explain 的使用
一.索引基础 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快.MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧.创建索引的命 ...
- “全栈2019”Java第七十八章:内部类可以继承其他类吗?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...