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、任务执行



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值