zoukankan      html  css  js  c++  java
  • jenkins自动部署代码到多台服务器

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

      

  • 相关阅读:
    Web Service接口设计(转)
    DataTable绑定到GridView时,RowDataBound事件
    SQLiteHelper
    SQL FOR XML子句的各种用法
    公历转农历函数
    SQL里变量的声明以及常用函数举例
    Python 与 Matlab混合语言编程资料
    Iterator和Generator学习心得(二)转
    python26 调用mysql 5.1
    转:程序员能力矩阵
  • 原文地址:https://www.cnblogs.com/lz0925/p/10860460.html
Copyright © 2011-2022 走看看