0
点赞
收藏
分享

微信扫一扫

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的

在项目部署实施过程中,我遇到这样一个问题,客户服务器没有搭建K8s,无法使用K8s自动更新部署。如果手动更新部署,需要先删除服务器已有容器和镜像,再从公司服务器pull镜像,再构建运行。流程较为繁杂且等待时间较长。由于在测试环境部署更新中,需要使用到jenkins客户端配置,jenkins客户端的功能相对还是比较强大的,于是我考虑使用jenkins客户端配置执行客户服务器上的脚本,来达到自动更新的目的。流程如下:

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_服务器

从上图看,流程非常的简单,我将简单介绍每个流程的内容。

首先是在客户服务器上编辑更新脚本,我的脚本如下:

#!/bin/sh
echo "停止并删除容器"
docker-compose down
echo "删除镜像"
docker rmi <你的镜像服务器地址>:<你的镜像版本>
echo "pull新镜像"
docker pull <你的镜像服务器地址>:<你的镜像版本>
echo "启动容器"
docker-compose up -d

脚本执行的操作是1,停止并删除当前容器;2,删除当前镜像;3,从镜像服务器地址pull最新的镜像;4,启动容器;

其次,我们需要再jenkins的客户端配置服务器连接,操作如下:

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_客户端_02

在jenkins首页点击系统管理,选择系统配置,找到SSH Servers配置项

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_服务器_03

配置服务器名称Name,服务器host地址,服务器连接Username。点击高级展开高级配置

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_服务器_04

在这里配置密码和连接服务器凭证Key,一般是OPENSSH PRIVATE KEY,可自行生成,生成后复制id_rsa里面的内容粘贴到此即可。

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_docker_05

下拉配置服务器端口Port和连接超时时间Timeout。

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_docker_06

都配置好后,配置卡片右下角点击Test Configuration按钮测试连接,如左侧出现“Success”,即代表配置无误,连接正常。


接下来,在jenkins中配置镜像构建推送任务,此处只做简单说明,需要配置任务名称,分支源等内容,相信看这篇文章的大佬都有这个基础能力。

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_docker_07

最后,配置执行服务器脚本任务,这一步至关重要。

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_docker_08

新建任务,选择构建一个自由风格的软件项目。

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_客户端_09

构建触发器选择其他工程构建后触发,并且选择只有构建稳定时触发,当然也可根据实际需要修改。配置关注的项目即上一步配置的镜像构建推送任务,特别注意需要以逗号","结尾,否则无法识别。继续在下方Build Steps增加构建步骤,选择Send files or execute commands over SSH。

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_服务器_10

配置内容如下:

如何使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的_docker_11

SSH Server中Name选择第二步配置好的服务器SSH Server连接,在Exec command处配置要执行的脚本命令,此处我配置的是进入脚本所在路径,sh执行脚本。保存后配置完成。

接下来就是执行构建并推送镜像任务,观察该任务完成后是否唤起脚本执行任务。至此,我们就完成了使用jenkins客户端配置自动执行服务器脚本,以达到自动更新的目的任务。需要说明的是,这种服务器连接方式并不安全,个人不建议这样做。欢迎大家指正。

举报

相关推荐

0 条评论