编码技巧——在项目中使用Alibaba Cloud Toolkit远程部署

背景

在新公司项目开发,当前项目为自建项目,意思是从开发到运维都需要自己负责,远程的服务器也是自己搭建的win操作系统;

之前在大厂工作时,一般提交代码之后,CICD流水线会自动的执行最新代码的拉取、构建打包、启动;

搜了下发现阿里提供了IDEA下的插件,可用于轻量级的远程服务部署,准备自己搭建配置下试试;由于没有运维经验,也没搞过cmd脚本,过程比较曲折,最终也算是顺利完成配置和使用,这里记录下完整的过程;

关于这款插件的介绍,可参考:如何在IntelliJ IDEA中安装和配置Cloud Toolkit_云插件-阿里云帮助中心,诸如:"在IntelliJ IDEA中安装和配置Cloud Toolkit后,您可以将本地应用快速部署到阿里云ECS、EDAS、容器服务Kubernetes版和任意服务器中去,还可以使用Cloud Toolkit提供的Arthas诊断、文件或文件夹上传、内置Terminal等功能。"

步骤

(1)远程服务配置SSH Server

由于公司远程机器安装的系统是Windows Server 2016版,因此没有SSH Server扩展程序,因此需要自己离线安装OpenSSH;

Github上有下载地址,下载压缩包版本:Releases · PowerShell/Win32-OpenSSH · GitHub

把压缩包中的文件解压后复制到 C:\Program Files\OpenSSH目录(没有就新建);

然后管理员身份打开PowerShell,在当前目录中执行:

bash 复制代码
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

安装安成后,打开Powershell,启动SSH服务:

可以通过命令或win+R services.msc设置SSH Server为自动开启,保证一直开着SSH服务;

(2)远程服务器安装命令工具

因为Maven打包格式设置的是.tar格式,需要解压文件,而老旧的Windows Server 2016系统没有tar工具,所以也需要自己安装;

下载 tar-1.13-1-bin.exe 文件;下载地址:Tar for Windows

安装目录:

安装后配置环境变量,保证cmd窗口可以直接运行,类似配置JDK;

执行 tar --help 就能知道是否配置完成:

(3)远程部署脚本编写

端口号:19898

部署位置:C:/deploy

需要完成:解压、关闭正在运行的服务、启动服务的流程,脚本代码如下:

vbscript 复制代码
chcp 65001
dir
echo unzip
tar -xf yoaf-server-boot-1.1.2.tar
echo unzip success!

@echo off
SET port=19898
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
	if [%%d] EQU [LISTENING] (
		set pid=%%e
	)
)
echo close server : %port%  %pid%
if not "%pid%" == "" taskkill /f /pid %pid%
 
echo restart : %port%
PING 127.1 -n 5 >nul
java -jar -Dfile.encoding=UTF-8 yoaf-server-boot-1.1.2.jar
 
exit

对应的vbs脚本:

vbscript 复制代码
set ws=WScript.CreateObject("WScript.Shell") 
ws.Run "C:\deploy\deploy.bat /start",0

独立的关闭服务的脚本:

vbscript 复制代码
@echo off
SET port=19898
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
	if [%%d] EQU [LISTENING] (
		set pid=%%e
	)
)
echo close server: %port%  %pid%
if not "%pid%" == "" taskkill /f /pid %pid%

exit

(4)本地IDE安装和配置插件

添加远程服务器节点

配置输出文件地址

配置输出文件前的Maven打包命令

命令:clean package -Dmaven.test.skip

install命令仅更新到本地仓库

deploy命令会更新到远程仓库

然后,配置远程目标地址和部署脚本;

远程目录固定:C:\deploy

远程脚本已经写好,按照示例配置:

C:\deploy\win_deploy.bat

(5)执行示例

参考:

如何在IntelliJ IDEA中安装和配置Cloud Toolkit_云插件-阿里云帮助中心

Alibaba Cloud Toolkit一键上云神器

Windows下在线与离线安装OpenSSH - 知乎

Releases · PowerShell/Win32-OpenSSH · GitHub

Win10 cmd如何使用tar命令压缩和解压文件夹_windows压缩tar-CSDN博客

windows下bat脚本启动springboot项目jar包-华为云开发者联盟

相关推荐
极光代码工作室1 天前
基于SpringBoot的在线博客系统
java·springboot·web开发·后端开发
gaolei_eit2 天前
Java+Ai+vue
java·spring·maven
Java爱好狂.2 天前
Java就业需要学习哪些内容?
spring·程序员·springboot·架构师·java面试·java面试题·java八股文
豆角焖肉2 天前
Maven核心概念与原理
java·maven
豆角焖肉2 天前
Maven进阶与搭建私服
java·maven
飞雪金灵3 天前
mac电脑 Maven下载安装和配置环境变量
macos·maven·maven下载安装·mac电脑环境
.Hypocritical.4 天前
Maven笔记——2
java·笔记·maven
极光代码工作室4 天前
基于SpringBoot的内容管理系统(CMS)
java·springboot·web开发·后端开发
遨游DATA5 天前
Maven dependencyManagement 已声明却仍缺 Jar:如何验证最终运行包
java·spring boot·maven·故障排查·依赖管理
欢醉5 天前
一次P0 故障:微服务线程数莫名暴涨 10 倍,线程问题踩坑
springboot·线程·springcloud