下面讲一下如何通过一台jenkins服务器构建后将代码分发到其他的远程服务器,即jenkins自动部署代码到多台服务器。

1、下载 pulish over ssh 插件

2、系统管理 -> 系统设置(全局设置和路径),  拉到最下面 找到 Pulish over SSH, 进行设置ssh key

  Passphrase     jenkins用户  SSH Key 的密码,如果未设置,可以不填

  Path to key      jenkins用户  SSH 私钥key的路径

  Key                  jenkins用户的ssh  私钥的内容

 3、设置 SSH servers,

  添加完上面三项后,接下来有个 SSH servers

  

  name:ssh连接的名称,可以随意取,有区分度就可以

  Host Name : 远程服务器的域名/IP, 建议是IP

  Username:  用户名,

  Remote Directoey: 远程目录(将来要部署代码到哪个目录,就写哪个目录,一般是www或者自定义的workspace目录都可以) ,我这里是测试地址,随便写的

  Use password authentication, or use a different key  这项勾上,使用密码或者key登录,二选一,

  Passphrase / Password  远程服务器密码,我采用密码登录的方式,选用key的话,应该是远程服务器你所选择的用户下的ssh  key

然后保存,上面算是一个通用设置,关于某台远程服务器。

4、修改构建任务,向远程服务器部署代码

下面可以新建一个jenkins的构建任务或者编辑之前的构建任务,找到构建,Send files or execute commands over SSH(构建环境和构建后操作选项中都有类似的设置)

这里脚本文件facility.sh内容如下,仅重启服务器,请根据需要自己编辑

#!/bin/sh -l
service nginx restart

第三步是该远程服务器的全局配置,这里就是该远程服务器根据不同的构建任务细分的配置

  解释一下上面字段的意思 ,

  Name  之前第3步时,添加的SSH servers, 下拉框,自己选择需要的远程服务器,

  Transfer Set Source Files : 要传输的源文件,相对路径,即该构建任务下你需要传输到远程服务器的文件。比如,我本次构建的项目所在目录/var/lib/jenkins/workspace/facility.klagri.com.cn/,

如果你需要 传输该目录下的所有文件,直接填  **/*,  如果只传单个文件  直接填写文件名(/var/lib/jenkins/workspace/facility.klagri.com.cn/为本选项的根目录)

  Remove prefix  :需要移除的前缀,针对 Transfer Set Source Files, 如果上一项中无用的目录层级比较多,可以在这里去掉(比如上一项填dev/v1.8.1/*, 本选项可以去掉dev/v1.8.1/ 无用的目录)

  Remote Directory : 远程目录,相对路径,要部署的具体的文件夹名称,这里我与jenkins中的目录保持一致 facility.klagri.com.cn,目录的前缀已经在步骤3中的Remote Directoey设置过了,路径为/usr/local/src/test0513/,

此时这个Remote Directory 将会拼接在/usr/local/src/test0513/后面形成/usr/local/src/test0513/facility.klagri.com.cn这个目录。(前面说过,一般是/www或者自定义的workspace目录都可以,我这里/usr/local/src/test0513/是测试地址,随便写的)

     Exec commands:在远程服务器执行命令,一般在这里可以给权限,执行部署脚本,部署脚本中一般会做很多工作,而不仅仅是重启服务器,比如备份,配置文件的设置,日志,等等

5、保存,立即构建

  查看是否成功部署,如成功构建,但远程服务器并没有任何文件,请检查第4步的路径,可以上传单个文件,一直使用最简单的配置,再次尝试。

gitlab+jenkins自动化构建,参考:  

  https://www.cnblogs.com/lz0925/p/10858278.html

  

最新文章

  1. C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
  2. nginx中配置pathinfo模式示例
  3. iOS开发-Xcode升级后插件失效解决办法
  4. Centos镜像使用帮助
  5. 微软职位内部推荐-Software Engineer II-News
  6. 分治法(一)(zt)
  7. MVC 全站开启缓存,缓解服务器的请求压力
  8. 使用phpmailer发送邮件(以QQ邮箱为例)
  9. DBCP|C3P0参数详解
  10. css link import
  11. Jupyter NoteBook功能介绍
  12. 手动调用run方法和普通方法调用没有区别
  13. airTest 应用到项目并优化
  14. FTP主动模式与被动模式,及java FTPClient模式设置
  15. Sqlserver2008R2配置数据库镜像之我的经验总结
  16. DQN-深度Q网络
  17. DotNetBar 使用笔记
  18. BZOJ2142 礼物 【扩展Lucas】
  19. 关于nginx反向代理504 gateway time-out配置
  20. C# 下载文件的四种方法

热门文章

  1. Unity和Mef的比较
  2. MongoDB 走马观花(全面解读篇)(转载)
  3. Linux (Ubuntu 18.04) 安装vim编辑器
  4. HNU_团队项目_需求分析感想(全员)
  5. eve-ng
  6. 华为HCNA乱学Round 10:PPP&PAP
  7. TensorFlow实战第五课(MNIST手写数据集识别)
  8. 第五周课程总结&试验报告三
  9. PTA(Advanced Level)1065.A+B and C
  10. 纯前端表格控件SpreadJS V12.1 隆重登场,专注易用性,提升用户体验