Jenkins部署应用到远程Linux阿里云之----Publish over SSH

本篇讲如何使用Publish over SSH组件来实现Jenkins部署到远程服务器的需求。

大概讲一下项目背景。这是一个小老板的小电商广告平台项目,提供的资金非常有限,为了提供最佳的服务性能,所以在仅有的一台阿里云CES服务器全部资源用来运行应用服务,ops全部在本地进行,程序打包完成后使用,在上传部署。但是在后期发现,手工部署运维成本极大,而且灵活性很差。所以我就DIY了一台虚拟机,全部的DevOps在这个虚拟机上进行。这样实现在虚拟机Jenkins服务,远程部署到阿里云上,后面的Ops全部通过虚拟机来实现。我把这个虚拟机进行了docker,到时候如果需要将环境移到线上,就着实方便了很多,啥都不需要要做,就可以无缝衔接。
这里我们着重写一下如何使用Publish over SSH组建来实现Jenkins远程部署程序到服务器上。

因为我在这个项目中用的是gradle构建,所以我找了一个我的类似架构的gradle工程来做演示。在具备了一个远程阿里云ces、本地虚拟机(我是ubuntu18.04)连个系统资源外,还需要在远程机和虚拟机上配置好相关的组建服务,如ces的jre,localVM的jdk,gradle,git,Jenkins等服务组件。以下步骤默认环境都是OK的。

1. 配置远程服务Publish over SSH

选择Jenkins的【系统管理】-》【系统管理】-》【Publish over SSH】标签页,如图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190618153511662.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xlZWdvb1dhbmc=,size_16,color_FFFFFF,t_70)
填写完整后点击【Test configuration】来测试,如果测试Ok,点击应用-》保存即可。

2. 配置项目

配置好远程ssh服务后,选择新建任务,
按照常规的命令填写项目相关的信息即可,我是选择的git服务,我的git项目参数如图,因为是demo,也就不Mosaic了
Jenkins部署应用到远程Linux阿里云之----Publish over SSH_第1张图片
构建选择【invoke gradle】
Jenkins部署应用到远程Linux阿里云之----Publish over SSH_第2张图片
gradle task 选择build 取掉test,让构建速度快点。
填写完成后,可以保存,选择构建任务,测试一下gradle是否能够正常构建项目

3. 配置ssh服务

上面两个步骤完成后,开始做关键的一步,就是ssh部分。
选择项目的配置标签,在【构建】标签中,【增加构建步骤】,选择【SSH】,在标签【SSH Publishers】填写参数即可:
Jenkins部署应用到远程Linux阿里云之----Publish over SSH_第3张图片
如果有多个远程服务,点击【Add Server】添加即可,参数如果没有特殊要求,保持一致就行,为了后期的维护方便,最后环境都保持一致。
我需要远程项目新版本发布的时候启动,所以写了Exec command 的命令。因为这是个demo,所以就是简单的启动而已,顺带保存了一下PID,方便下次构建。

编写完配置后,点击构建,查看效果。
Jenkins部署应用到远程Linux阿里云之----Publish over SSH_第4张图片
构建日志显示部署成功。我们能去看看阿里云服务器上是否收到该包。
Jenkins部署应用到远程Linux阿里云之----Publish over SSH_第5张图片
确认无误,项目正确部署了
Jenkins部署应用到远程Linux阿里云之----Publish over SSH_第6张图片
应用程序运行OK。

你可能感兴趣的:(运维)