玖叶教程网

前端编程开发入门

Jenkins进阶之远程部署、构建Git分支、回滚,史上最清晰,收藏!

目录

一、导语

二、Jenkins远程服务器部署、启动

三、Jenkins生产环境回滚

四、Git 分支构建

五、禅言慧语选闲

一、导语

Jenkins是什么,如何安装、配置、部署以及基本应用,已在上一篇《Jenkins安装配置,项目发布、管理详解,史上最清晰,值得收藏!》做过详细的讲解。

本文将对jenkins 的高级应用做进一步讲解。相信通过这两篇文章,大家能对jenkins有一个全面、深入的认识,并能应用于生成环境。

演示用的脚本和代码依然是从github下载:

https://github.com/wzjgn/xinwei-example.git

二、Jenkins远程服务器部署、启动

jenkins自动将打包成果发送到远程服务器,并重新部署、启动服务。

jenkins支持非常灵活的配置方案,本文主要介绍种常用两种方式:

  • Publish over SSH

  • Post Steps 自定义shell脚本

准备工作

ssh免密配置

Jenkins所在机器通过SSH服务,将构建的代码包分发到远程服务器,并登录到远程服务器执行脚本,需要做免密配置。

本文案例通过设置SSH key免密访问远程服务器。

如有服务器A、B,现想A通过ssh免密码访问B,则将A机器中的id_rsa.pub ,拷贝到B机器的 .ssh/authorized_keys 文件中。

cat id_rsa.pub >> .ssh/authorized_keys

#拷贝A服务器公钥到B服务器authorized_keys文件,默认该文件不存储,系统会新建该文件。

$ chmod 600 authorized_keys

#设置.ssh目录权限

A机器第一次ssh 登录到B机器时,需要输入B机器的密码,以后就可以不输入了。

2.1、Publish over SSH

安装Publish over SSH插件

系统管理→管理插件→可选插件→Publish Over SSH

插件配置

全局设置(Publish over ssh)

“系统管理>系统设置”中进行配置,如图:

参数说明

  • Passphrase:SSH的密码

    创建ssh key时指定,本文创建ssh key时默认为空。故,此处为空,不填写。

  • Path to key:SSH私钥的文件路径

    私钥文件的路径,可以是绝对路径,也可以是相对$JENKINS_HOME的相对路径

  • Key:私钥

    私钥导出后的文本内容

  • 如果“Key”和“Path to key”都设置,则“Key”的优先级较高

  • Disable exec:禁止在目标机上执行命令

SSH Server 配置

指定远程服务器的ip,存放目录。可以配置多个ssh server ,jenkins自动将打包成果发送到多个远程服务器。

配置完成后,可以 通过 “Test Configuration” 测试是否配置正确。

参数说明

  • Name

    SSH节点配置的名称,在Job中使用Publish over SSH插件时,此名称将出现在“SSH Server”中“Name”的下拉列表中,如下图:

  • Hostname

    通过SSH连接到的机器的主机名或IP

  • Username

    SSH服务使用的用户名,使用key进行连接时为key指定的用户名

  • Remote Derictory

    运程机器上真实存在的目录,并且“Username”指定的用户要有访问此目录的权限,插件将把文件传送到此目录下。

Publish over SSH 的应用

创建项目时,设置 构建环境,与Publish over ssh 的设置一一对应。

参数说明

  • Name:

    下拉选择一个 系统设置已配置的名字。

  • Transfer Set Source files:

    需要上传的文件(注意:相对于工作空间根目录。

    工作区根目录配置:系统管理->系统设置->主目录->高级->工作空间根目录

    看后面的配置可以填写多个,默认用,分隔,)

    本例的工作区路径是:/var/lib/jenkins/workspace/wrapper-test

    因此,此处可以填写:

    **/*.tar

    xinwei-wrapper-example/target/xinwei-wrapper-example-1.0-SNAPSHOT-bin.tar

  • Remove prefix:

    Source files”配置的路径中要移除的前缀

    即:xinwei-wrapper-example/target/

  • Remote directory:

    远程目录,此目录是相对于“SSH Server”中的“Remote directory”的,如果不存在将会自动创建。

  • Exec command:

    通过ssh连接远程服务器后,在远程服务器上执行的脚本。

本例子的脚本作用是:在远程服务器上解压 tar包,通过wrapper启动应用。

启动日志:

脚本见:

https://github.com/wzjgn/xinwei-example.git

xinwei-example/script/Publis over SSH

2.2、Post Steps

上一篇文章,也是通过Post Steps完成了本地项目部署、执行。

本文通过脚本的方式,拷贝项目包到远程服务器,执行远程脚本。

脚本文件见:

https://github.com/wzjgn/xinwei-example.git

xinwei-example/script/Post Steps(remote)

1、拷贝tar包到远程服务器

2、执行远程服务器脚本

三、Jenkins生产环境回滚

回滚的原理:

将历史构建的部署包备份,回滚时选择历史构建编号,重新拷贝部署包到远程服务器。

3.1、创建回滚任务

新建任务:

基本配置:

选择参加化构建,便于在触发回滚时指定回滚版本号。

参数设置:

参数说明:

建议选择Run Parameter,回滚时从下拉框选择回退版本号。

Name:任意名称,此名称是在下面的回滚构建脚本中以变量的方式使用。

Project:必须是构建列表里的名称,回滚脚本依赖该名称查找回滚的包。

源码管理

选择None

构建:

变量说明:

WrappeRollback:

对应Run Parameter中配置的名称。该变量的值是构建的包的默认存放地址。

BUILD_NUMBER:历史构建版本号。

脚本见:

https://github.com/wzjgn/xinwei-example.git

xinwei-example/script/Rollback

3.2、执行回滚

选择任务列表中的回滚任务:wrapper-test-rollbacke

选择回滚版本号,开始构建

构建日志:

将历史构建的包 scp 到待回滚的远程服务器,重启服务。

回滚操作完成。

四、git 分支构建

4.1、安装插件 Git Parameter

4.2、新建任务

配置构建参数

其他配置参数详见本文其他案例。

4.3、任务执行

如遇Jenkins基础配置问题,请翻看上一篇《Jenkins安装配置,项目发布、管理详解,史上最清晰,值得收藏!》

五、禅言慧语选闲

俄罗斯方块留给我们的感悟:

一开始留给你的时间很多,慢慢的就会感到时间紧促了;获得的成功总会消失,犯下的错误却会积累,走错一步要用几步来弥补;不要纠结于当前的错误,否则会错上加错。

珍惜时间,少犯错误,果断止损!

俄罗斯方块留给你的感悟呢?

欢迎留言!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言