开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
0. 背景
有一个 jar 包涉及到一些图像处理,装在了 WinServer2012R2 服务器上,现在需要使用Alibaba Cloud Toolkit 自动部署一下。
1. WinServer2012R2 安装软件
1.1. 安装 OpenSSH
根据官方指导内容 使用IntelliJ IDEA部署应用到Windows服务器,我们需要先安装OpenSSH。但很显然,我们的Windows版本比较老,故应遵循:Install OpenSSH Server/Client on Windows Server 的指导来。
先下载和原文博主日期几乎一致的版本 : v0.0.8.0 按照电脑位数下载,我下载了OpenSSH-Win64.zip
开始安装,安装完成之后,将目录添加到Path环境变量,就像这样:
然后我们在OpenSSH的目录下运行命令:
.\install-sshd.ps1
命令执行完应该显示sshd和ssh-agent服务安装成功。
然后执行生成key的命令即可:
.\ssh-keygen.exe -A
1.2. 安装 freeSSHd
1.2.1.下载
首先下载 freeSSHd,一路安装,它让干啥,你就点同意即可。
1.2.2.设置SFTPHOME路径
安装完之后,在C盘创建文件夹,重命名为 ActTemp (它会成为传输文件的一个缓冲区)。
此时双击桌面上的FreeSSHd,正常打开后,会在右下角出现小标识:
双击即可打开设置对话框,首先设置SFTP HOME路径为C:\ActTemp
1.2.3.配置账户信息
在Users页签下单击Add。在User properties对话框中配置账户信息。
我这里就写的远程桌面的,这样密码一致方便管理。
1.2.4.配置默认shell
单击SSH页签,在Command shell路径中选择C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe。
2. 配置IDEA
先在 AlibabaCloudView 中 Add Host:
3. 编写自动部署脚本
虽然前面的配置可以满足我们传输jar包了,但是我们希望它自动杀进程、备份jar包、启动jar包,故我们还需要写批处理脚本。
阿里云的插件有两个钩子可以使用,一个是部署之前,一个是部署之后。我们的目标
- 部署之前:备份jar包、杀进程、删除jar包
- 部署之后:启动jar包
为了简便,我们就直接放jar包在D盘目录下,所有的脚本放在 D:\MyBatScripts,备份jar包放在D:\backupJars。
3.1.部署之前的脚本
我们首先编写D:\MyBatScripts\before.bat:
copy D:*.jar D:\backupJars
netstat -ano|findstr "9080"|findstr LIST > D:\MyBatScripts\toKillPidList.txt
for /f "tokens=5 delims= " %%i in (D:\MyBatScripts\toKillPidList.txt) do @taskkill /pid %%i -t -f
del D:*.jar
其中,findstr "9080"是指端口号,在实际操作中可以改成我们自己服务的。
编写脚本的过程中,参考了 windwos 批处理脚本bat 截取某一列 赋值给变量,执行变量(重启weblogic服务)
3.2.部署之后的脚本
然后我们编写D:\MyBatScripts\after.bat:
@echo on
for /f "delims=" %%t in ('dir D:*.jar /B') do set jarFileName=%%t
echo %jarFileName%
java -jar D:%jarFileName%
3.3.配置自动部署脚本
4. 结语
如此我们就可以实现WinServer2012开发环境jar包自动部署了,正常启动后,在服务器上会弹出cmd窗口。