Jenkins 拷贝文件到远程服务器

这里主要是记录下怎么将文件拷贝到远程服务器上, 主要是遇到的一些坑

Jenkins 安装

这个网上有很多了, 这里就不赘述了, 可以参考如下文章:
Linux 上安装 Jenkins: https://www.jianshu.com/p/c517f09df025

安装完后还要配置必要的插件:

  • Pushlish over SSH: 用来连接远程服务器
  • maven intergration: maven 打包用的, 如果你只是为了拷贝文件不需要打包项目可以不用装
  • git: 版本控制工具, 不管是代码还是文件如果是用 git 管理的, 那这个是必不可少的插件

1. 先配置远程服务器连接

点击 Jenkins -> Manage Jenkins -> Configure System :
在这里插入图片描述
找到 Pushlish over SSH 选项, 点击新增:
在这里插入图片描述
然后填写相关信息:
在这里插入图片描述

  • Name:服务器名字,随便取
  • Hostname:服务器 IP 地址
  • Username:服务器登录用户名
  • Remote Directory:远程服务器的路径,比方说配 /root,这样 Jenkins 在拷贝文件的时候只会存在这个路径下,相当于前缀

点击上图中的 Advanced(高级)按钮,勾选 Use password authentication... 选项,在 Path to key 中填上密码:
在这里插入图片描述
然后可以点击下面的 Test Configuration 按钮测试下能不能正常连接,如果不能连接要看是不是网络问题了,可以在部署 Jenkins 的服务器上 ping 一下远程服务器的IP,或者端口没开放的话可以开放端口

2. 配置拷贝任务

首先说一下, 在 Jenkins 中, 每创建一个新的任务, 就会在 Jenkins 的工作目录中创建一个以 任务名称 命名的文件夹, 比如新建一个 demo 任务, 则在 /var/lib/jenkins/workspace目录下会多一个 demo 文件夹, 保存任务运行期间产生的文件, 如 Maven 打包的文件等, 所以我们要查找文件什么基本在这个目录, 这个很关键

创建一个新的 Jenkins 任务:
在这里插入图片描述
填上名称,这里我们选择 构建一个 maven 项目, 可以根据自己需要进行选择, 然后点击确定:
在这里插入图片描述
进来以后可以看到有很多项配置:
在这里插入图片描述
这里不一定每个都要设置, 先是 General
在这里插入图片描述
这里主要配置任务描述和 Discard old builds(丢弃旧的构建), 数量自定义.

然后是源码管理(Source Code Management), 设置项目的 git 地址, 认证信息以及分支, 默认分支是 master:
在这里插入图片描述
然后配置 Build(构建):
在这里插入图片描述
Post Steps(后置动作)进行配置, 即在 Build 步骤后执行, 这里设置将文件拷贝到远程服务器:
在这里插入图片描述
在这里插入图片描述
要注意很重要的一点, 这里的 Source files, Remote directory空格里填的路径都是相对路径, 不能填绝对路径:

  • Source files:从当前任务的文件夹开始,在当前的 demo 任务中,所以它默认的前缀是 /var/lib/jenkins/workspace/demo/,所以Jenkins在查找要拷贝文件的时候是从这个路径下去找,如果最后执行这个 demo 任务的时候发现没有拷贝文件就有可能是路径配错了
  • Remote directory:这个路径是相对于我们第一步配置 SSH Server 里的 Remote directory 路径,刚刚我们配置的是远程服务器的根目录 / ,所以拼接上我们配置的 root/demo 就是 /root/demo, 文件将被放在这里。

关于 Exec command , 拷贝文件后执行的指令, 这个可以自己定义, 我这里是执行了我提前写好的一个 shell 脚本, 用来专门重启 tomcat 服务的

其他没有要设置的, 点击保存完成配置。

3. 执行任务

一保存完会跳转到下面的页面:
在这里插入图片描述
点击执行任务后在地下的 Build History 里可以看到构建记录和进度:
在这里插入图片描述
点击进度条上面的日期和时间, 进入构建记录详情:
在这里插入图片描述
任务执行完以后可以看到有传输了一个文件到远程服务器, 这样就说明文件已经拷贝到远程服务器上了:
在这里插入图片描述

如果出现 SSH: Transferred 0 file(s) 说明没有传输任何文件, 那很可能是在 Post Steps 步骤中参数 Source files 没有配置对, 记得一定是相对路径, 可以先去Jenkins的那个目录下看下文件是不是真的有在, 路径有没有错

最后,如果有遇到什么问题可以在下方评论,一起讨论交流哈

  • 22
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值