项目部署点一下按钮就可以,全流程自动化

异步流沙
• 阅读 2448

我们平时在开发一些小项目的时候,有快速部署发布的这样的需求,我感觉最智能的方式可能是喊一声“发布”,应用程序就能自动打包发布到服务器上并运行起来。因为项目的规模比较小,我们可能不会应用到DevOps团队。我们希望有一个小工具,帮我们实现应用程序的快速上线。

Alibaba Cloud ToolKit就可以帮助我们就解决这个问题,但是我们还是得打一点小小的折扣,我们无法实现“喊一声”,但是我们可以实现“按一下”就发布应用程序。对于看文档感觉乏味的同学:点这里,这里有本文对应的操作《视频》

第一步:安装IDEA插件Alibaba Cloud ToolKit

IDEA File-> Settings-> Plugins->插件市场搜索alibaba-> 安装install Alibaba Cloud ToolKit。

项目部署点一下按钮就可以,全流程自动化

插件安装完成之后,重启IDEA编辑器。

第二步:添加服务器

插件安装完成之后,在IDEA中找到“Alibaba Cloud View” 里面的Host的Tab框。

项目部署点一下按钮就可以,全流程自动化

点击“Add Host”按钮之后弹出如下对话框,添加远程服务器主机IP及用户名密码。

项目部署点一下按钮就可以,全流程自动化

添加完成之后多出一条Host记录

项目部署点一下按钮就可以,全流程自动化

第三步:为服务器添加命令行

将一些在该服务器上经常使用的命令行,固化为command配置

项目部署点一下按钮就可以,全流程自动化
点击command,执行添加命令行操作

项目部署点一下按钮就可以,全流程自动化
对于应用部署,需要使用到如下两个命令行

# 删除历史启动的 server-jwt进程
ps -aux|grep -v grep |grep server-jwt| awk '{print $2}'|xargs kill -9;
# 用java 方式启动server-jwt-1.0.jar
nohup java -jar /root/server-jwt-1.0.jar &;

将上面的命令行中的“server-jwt”替换为你自己的应用的jar名称或唯一关键字即可。如果对于这两个命令完全无法理解,需要去学习shell脚本、nohup、awk脚本和java -jar启动方式等基础知识。

第四步:应用部署配置

需要部署的项目右键->Alibaba Cloud -> Deploy To Host,弹出如下对话框:

项目部署点一下按钮就可以,全流程自动化

上图对话框红色区域中,从上到下、从左到右依次是:

  • 本次部署配置的名称:Name,配置固化下来之后可以复用
  • 在项目上传到服务器之前maven打包:Maven Build。也可以选择使用Gradle打包:Gradle Build或者手动打包之后上传文件:Upload File。
  • 选择远程部署的服务器的Ip,本文中第二步的配置结果
  • Target Directory:maven打包之后的文件上传目录(即应用部署目录):根据自己的主机路径规划填写。
  • After Deploy:当文件上传主机之后执行的shell脚本或命令行,我们这里选择执行nohup java -jar /root/server-jwt-1.0.jar &;启动应用。
  • Run Maven Goal :maven 的打包目标,先对父项目打包,再对子模块打包。如果不存在,就点击“+”新建,打包命令是“clean install”

项目部署点一下按钮就可以,全流程自动化

除了应用打包、上传、启动之外,我们通常需要一些额外的动作。

  • 比如:之前已将发过一版,再次部署发版应该先把旧版本进程停掉。选择ps -aux|grep -v grep |grep server-jwt| awk '{print $2}'|xargs kill -9;命令行,第三步配置好的。
  • 比如:应用部署完成之后,应该立刻查看应用启动的日志,观察是否正常。

项目部署点一下按钮就可以,全流程自动化

经过以上的配置之后,就可以实现应用程序“一键”打包、上传、启动、查看日志的效果。

欢迎关注我的博客,里面有很多精品合集

  • 本文转载注明出处(必须带连接,不能只转文字):字母哥博客

觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。

点赞
收藏
评论区
推荐文章
编程范儿 编程范儿
3年前
如何在启动 Vue 程序之前读取本地静态文件内容
有这样一个需求,就是希望通过本地的Json文件来写入一些内容,比如请求后端接口的API前缀,我们在public目录下面新建一个project.config.json文件来做一些配置项:"baseUrl":"http://192.168.199.201:10000/"这样有一个好处就是项目打包发布之后的文件也可以通过更改这个静态文件来改
Stella981 Stella981
3年前
Docker镜像+nginx 部署 vue 项目
一、打包vue项目在开发完的vue项目输入如下命名,打包生成dist文件夹yarnbuild/npmrunbuild此时根目录会多出一个文件夹:dist文件夹,里面就是我们要发布的东西。如果将该dist目录整个传到服务器上,部署成静态资源站点就能直接访问到该项目。!(https://img2018.cnblog
Wesley13 Wesley13
3年前
Go配置文件热加载
在日常项目的开发中,我们经常会使用配置文件来保存项目的基本元数据,配置文件的类型有很多,如:JSON、xml、yaml、甚至可能是个纯文本格式的文件。不管是什么类型的配置数据,在某些场景下,我们可会有热更新当前配置文件内容的需求,比如:使用Go运行的一个常驻进程,运行了一个WebServer服务进程。此时,如果配置文件发生变化,我们
Stella981 Stella981
3年前
DevOps 初学者宝典
什么是DevOps随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009年左右DevOps应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。!DevOps
Stella981 Stella981
3年前
Serverless架构:有明云PaaS
  今天大多数公司无论是在开发应用程序的时候还是将其部署到服务器的时候,无论是选择公有云还是私有云,都需要提前估算究竟需要多少台服务器,都需要部署运行应用程序和依赖的各种各样的软件到服务器上。如果我们不想在这些与业务无关的繁琐的细节上耗费精力,是否有一种简单的架构能够满足我们的需求呢?答案是Serverless(无服务器)架构。  Serverl
Stella981 Stella981
3年前
Spring Cloud Alibaba 的前世今生
1SpringBootSpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。目的是解决企业项目一站式部署,通过内嵌Servlet容器(如Tomcat)创建可执行的jar,用简单的javajar方式就能实现Java项目快速部
Stella981 Stella981
3年前
Docker镜像瘦身
Docker是一个用于开发,交付和运行应用程序的开发平台。它能够将应用程序和基础架构分开,保证开发,测试,部署的环境完全一致,从而达到快速交付的目的。但是在实际项目中,会对项目中的模块或者服务进行细分,导致部署的镜像过多(50个),过大(打包压缩后的镜像达50G),这给部署带来了不小的隐患,特别是私有化部署(通过移动介质拷贝镜像进行部署)。
Easter79 Easter79
3年前
SpringBoot开发及学习
SpringBoot是Spring新出的一个框架,他的目的一如始初简化开发。我们开发项目的时候,为了让项目运行起来,我们要考虑很多架构、配置、依赖等问题,这些问题其实每个项目都要考虑,而且每个项目的开发都有固定的模版,这些重复的工作是每个项目的样板代码,SpringBoot做的就是帮我们完成这些重复行的工作,让我们只关注业务逻辑。主要帮我们完成了以下
Stella981 Stella981
3年前
DubboX + SpringBoot最佳实践
一、先了解一下情况Dubbox是什么?现在微服务很火,而Dubbox就是一个支持微服务的一个框架SpringBoot又是什么?我们先来讨论一个问题,我们在使用Spring的时候,是不是要进行大量的配置,甚至部署的时候还要重新配置发布环境,重新打包,部署…………是不是觉得太麻烦了?而Spri
亚马逊云科技的MLOps新实践,会给我们哪些启发?
20年前,软件行业在数字化演进的道路上,从部署一个Web服务器到部署几十甚至上百上千个不同的应用,在各种规模化交付方面的挑战之下,诞生了DevOps技术。比如虚拟化、云计算、持续集成/发布、自动化测试等,而MLOps就是机器学习时代的DevOps。它的主要作用就是连接模型构建团队和业务,运维团队,建立起一个标准化的模型开发,部署与运维流程,使得企业组织能更好
京东云开发者 京东云开发者
10个月前
Docker运行环境安装
作者:京东科技林中Docker是一个开放的平台,用于开发、发布和运行应用程序。Docker分离了应用程序和运行应用的基础设施,从而实现了软件的快速交付。利用docker提供的一系列功能,包括构建、发布、测试和部署,可以帮助开发人员将最新版本代码应用到生产环