编码技巧——在项目中使用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,在当前目录中执行:

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

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

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.jarexit

对应的vbs脚本:

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

独立的关闭服务的脚本:

@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包-华为云开发者联盟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/459429.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《计算机网络简易速速上手小册》第7章:云计算与网络服务(2024 最新版)

文章目录 7.1 云服务模型(IaaS, PaaS, SaaS)- 你的技术魔法盒7.1.1 基础知识7.1.2 重点案例:构建和部署 Python Web 应用实现步骤具体操作步骤1:创建 Flask Web 应用步骤2:准备应用部署 7.1.3 拓展案例1:使…

7机器人位姿的数学描述与坐标变

由上次刚体的空间转动直接切换为机器人相关术语。 1.机器人位姿的数学描述与坐标变换 1.1位姿描述 {B}相对于{A}的姿态描述用3x3矩阵表示为: 式中为三个单位正交主矢量,分别表示刚体坐标系{B}的三个坐标轴XBYBZB在参考系{A}中的方位,∠XBXA表…

点餐|外卖订餐小程序|基于微信小程序的外卖订餐系统设计与实现(源码+数据库+文档)

点餐|外卖订餐小程序目录 目录 基于微信小程序的外卖订餐系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户微信端功能模块 2、管理员服务端功能模块 3、商家务端功能模块 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设…

过年回家,你是否也努力的给别人解释软件开发是干啥滴?

这个年就这样,在喜气洋洋的气氛中,在我们依依不舍的留恋中,从我们身边溜走了。这次回家又碰见了亲戚们不厌其烦的问我,你做什么工作呐?于是就有了我以下生动的解释 目录 打字的 帮助传话,帮助卖东西 皮…

Java基于微信小程序的驾校报名小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

HTTP协议笔记

HTTP协议笔记 参考: (建议精读)HTTP灵魂之问,巩固你的 HTTP 知识体系 《透视 HTTP 协议》——chrono 目录: 1、说说你对HTTP的了解吧。  1. HTTP状态码。  2. HTTP请求头和响应头,其中包括cookie、跨域响…

x-shell安装、使用以及配置cuda、cudnn和conda

x-shell安装、使用以及安装最新版本conda x-shell安装远程连接服务器conda安装和环境配置 x-shell安装 x-shell是一款终端模拟软件,用于在Windows界面下远程访问和使用不同系统下的服务器。免费版本下载地址: https://www.xshell.com/zh/free-for-home-…

Java学习15-- 面向对象学习3. 对象的创建分析【★】

(本章看不懂多读几遍,弄懂后再往下章看) 面向对象学习3. 对象的创建分析 Java Memory Structure: 如上图所示: 主要分为Stack和Heap Memory 其中Stack主要放method包括main 程序从main开始所以main最先进入Stack,等…

渗透测试-信息打点与架构分析细节梳理

渗透测试-信息打点与架构分析细节梳理 为了保障信息安全,我在正文中会去除除靶场环境的其他任何可能的敏感信息 什么是网站架构 网站架构包括网站的方方面面,下面是常见的内容: 前端(Front-End): 使用Reac…

第二讲:数据结构 AcWing 826. 单链表

目录 数组模拟链表数组模拟单链表 单链表思路 && 代码 看图更好理解推荐一下y总的刷题网站 数组模拟链表 笔试的题目大部分 大部分涉及到链表都是十万级别的 用数组的方式创建链表速度很快,不会超时,而如果用new 一个结构体的话 大部分就是比较…

【JAVA WEB】标签的应用

个人简历信息填写界面 通过上篇博客对java web标签的介绍&#xff0c;这里我们简单的应用一下这些标签。 效果 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&q…

JavaEE作业-实验三

目录 1 实验内容 2 实验要求 3 思路 4 核心代码 5 实验结果 1 实验内容 简单的线上图书交易系统的web层 2 实验要求 ①采用SpringMVC框架&#xff0c;采用REST风格 ②要求具有如下功能&#xff1a;商品分类、订单、购物车、库存 ③独立完成&#xff0c;编写实验报告 …