这里主要是记录下怎么将文件拷贝到远程服务器上, 主要是遇到的一些坑
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的那个目录下看下文件是不是真的有在, 路径有没有错
最后,如果有遇到什么问题可以在下方评论,一起讨论交流哈
本文介绍如何使用Jenkins实现文件的远程部署,包括配置PushlishoverSSH插件以连接远程服务器,以及设置文件拷贝任务的具体步骤。
1万+

被折叠的 条评论
为什么被折叠?



