这里主要是记录下怎么将文件拷贝到远程服务器上, 主要是遇到的一些坑
这个网上有很多了, 这里就不赘述了, 可以参考如下文章:
Linux 上安装 Jenkins: https://www.jianshu.com/p/c517f09df025
安装完后还要配置必要的插件:
Pushlish over SSH
: 用来连接远程服务器maven intergration
: maven 打包用的, 如果你只是为了拷贝文件不需要打包项目可以不用装git
: 版本控制工具, 不管是代码还是文件如果是用 git 管理的, 那这个是必不可少的插件点击 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,或者端口没开放的话可以开放端口
首先说一下, 在 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 服务的
其他没有要设置的, 点击保存完成配置。
一保存完会跳转到下面的页面:
点击执行任务后在地下的 Build History
里可以看到构建记录和进度:
点击进度条上面的日期和时间, 进入构建记录详情:
任务执行完以后可以看到有传输了一个文件到远程服务器, 这样就说明文件已经拷贝到远程服务器上了:
如果出现
SSH: Transferred 0 file(s)
说明没有传输任何文件, 那很可能是在Post Steps
步骤中参数Source files
没有配置对, 记得一定是相对路径, 可以先去Jenkins的那个目录下看下文件是不是真的有在, 路径有没有错
最后,如果有遇到什么问题可以在下方评论,一起讨论交流哈