下面讲一下如何通过一台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

  

jenkins自动部署代码到多台服务器的更多相关文章

  1. 关于gitlab+jenkins自动部署代码的实现

    本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...

  2. 持续集成之Jenkins自动部署war包到远程服务器

    一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载-------- ...

  3. 在linux服务器上装svn版本管理,自动部署代码到项目

    在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw ...

  4. 在linux服务器上装svn版本管理,自动部署代码到web项目

    在linux服务器上装svn版本管理,自动部署代码到项目 1.安装svn服务器端  yum install subversion   从镜像下载安装svn服务器端 中间会提示是否ok,输入y,确认  ...

  5. 使用Jenkins自动部署博客

    title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...

  6. Jenkins自动部署spring boot

    Jenkins自动部署spring boot 背景介绍 本公司属于微小型企业,初期业务量不高,所有程序都写在一个maven项目里面,不过是多模块开发. 分了login模块,service模块,cms模 ...

  7. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

  8. 内存溢出导致jenkins自动部署到tomcat失败

    原文地址:http://openwares.net/java/jenkens_deploy_to_tomcat_error_of_outofmemoryerror.html jenkins自动部署wa ...

  9. [ci] 构建触发器,实现当gitlab有push动作时候,jenkins自动拉代码.

    构建触发器,实现当gitlab有push动作时候,jenkins自动拉代码. 拉取gitlab代码库: jenkins安装git插件 配置gitlab服务器和jenkins服务器身份互信 jenkin ...

随机推荐

  1. UI的流畅度优化

    Android中所有的界面绘制工作都是在UI线程中进行的,提高UI流畅度的最核心根本在于释放UI线程.即:不在主线程中做耗时的操作. 很多人都知道,耗时的操作要放到子线程中去做,比如访问网络,比如读写 ...

  2. flask 学习(二)

    安装了flask扩展 以及flask-bootstrap 默认情况下,flask在template文件夹寻找模板. flask 加载的是Jinja2模板,该模板引擎在flask中由函数render_t ...

  3. 六十:Flask.Cookie之flask设置cookie的有效域名

    设置cookie有效域名cookie默认只能在主域名下使用,如果要在子域名下使用,则应该给set_cookie设置属性domain='.主域名',此时,此cookie在此主域名下的所有子域名均有效 f ...

  4. Android ADT安装与卸载

    Android ADT安装 Eclipse 版本: Eclipse Java EE IDE for Web Developers. Version: Kepler Release Build id: ...

  5. PHP 生成器 yield理解

    如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生.但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显.但是,生成 ...

  6. 【MM系列】SAP ABAP 编辑字段出现:对象编辑中的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 编辑字段出现: ...

  7. Unity中的动画系统和Timeline(1) 普通动画创建

    学习使用版本:Unity2017.1.1 目标:给一个Cube创建动画 一:第一种创建方法 1 Windows —— Animation,打开Aniamtion动画界面,此时显示 因为此时没有任何动画 ...

  8. MHA简单部署

    MHA是目前比较成熟的mysql高可用集群方式之一. 一.参考文档:1.官方文档:[ https://github.com/yoshinorim/mha4mysql-manager/wiki ]2.个 ...

  9. 【转贴】GS464/GS464E

    GS464/GS464E GS464为四发射64位结构,采用动态流水线.其1.0版本(简称GS464)为9级流水线结构,在龙芯3A.3B.2H中使用.其2.0版本(简称GS464E)为12级动态流水线 ...

  10. Python学习【day01】- Python初识

    Python下载:https://www.python.org/downloads/ 下载后进行安装,安装后的Python我们称之为Python解析器 1.打印“Hello World” 安装后的Py ...