使用openSSH的方式

如果我们项目的部署环境在windows环境上,我们可以选择给服务器安装openSSH的方式,然后以脚本的方式进行部署。也可以通过web容器的对外访问地址,发布到web容器上(如tomcat容器)。

下载openSSH安装包

博主这里的操作系统是64位的,因此选择这里选择64位的zip包进行下载

安装openSSH服务

将zip包进行解压,然后以管理员的方式运行cmd命令行工具,并执行下图所示的命令。

cd "D:\Program Files (x86)\OpenSSH-Win64"
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

#设置服务自动启动并启动服务
sc config sshd start= auto
net start sshd
进行连接

sshd服务安装之后,我们可以使用windows账号进行远程连接。

ssh account@ip

ssh成功连接之后,就会出现下图所示的提示。

命令执行结果

上面我们使用的是用户名和密码的方式进行远程连接,下面我们使用rsa的方式进行远程连接。第一步,先将C:\ProgramData\ssh\sshd_config文件中的相关配置注释。

enter description here

第二步,在远程主机的ssh目录下,将本机的ras公钥加入authorized_keys文件中。

enter description here

直接使用bat脚本进行发布

这里以springboot的jar包为例,使用了nssm.exe工具来进行windows服务的部署,没有使用过的小伙伴可以先进行下载。主要使用到了下面三个脚本,这三个脚本都在springboot项目的跟目录下,然后将对应的配置修改之后,只要运行一个copy.bat脚本即可。

copy.bat脚本,主要是拷贝资源,然后运行远程服务器的bat脚本。

@echo off
set server=17637@192.168.3.33
set rootPath=d:\\project\\api
set tempPath=d:\\project
set batPath=%rootPath%\\run.bat
set projectName=userweb-0.0.1-SNAPSHOT.jar

scp -r run.bat %server%:%rootPath%\\run.bat
scp -r main.bat %server%:%rootPath%\\main.bat
scp -r ./userweb/target/%projectName% %server%:%tempPath%\\%projectName%

ssh %server% %rootPath%\\main.bat

main.bat脚本,主要用于将java程序部署成windows服务。

@echo off
set serviceName=userweb
set "state=100"
set server=17637@192.168.3.33
set rootPath=d:\\project\\api
set tempPath=d:\\project
set projectName=userweb-0.0.1-SNAPSHOT.jar

for /f "tokens=3" %%i in ('sc query %serviceName% ^| findstr /i state') do (
	set "state=%%i"
	if "%%i" == "4" ( nssm stop %serviceName% ) 
)

if "%state%" == "100" (
	cp -r %tempPath%\\projectName %rootPath%\\projectName 
	nssm install %serviceName% d:\\project\\api\\run.bat
)

nssm start %serviceName%

exit

run.bat脚本,nssm工具

java -jar d:\\project\\api\\userweb-0.0.1-SNAPSHOT.jar

查看效果:

执行结果

使用jenkins+cmd命令构建任务

安装服务

启动服务

部署成功

使用deploy to container插件

如果没有安装deploy to container插件,先进行插件的安装。

安装deploy to container 插件

配置tomcat

在tomcat安装目录下的conf/tomcat-users.xml中,添加远程登陆的用户。内容添加后需要重启tomcat容器。

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="root" password="123456" roles="admin,manager,manager-script,manager-gui"/>

给tomcat添加完用户之后,可以通过tomcat访问路径/manager,进行登陆。

登陆tomcat管理界面

配置jenkins任务

大部分配置都跟之前jar包部署的类似,这里我们只需要着重配置一下tomcat的信息即可。

配置tomcat信息

开始构建任务

enter description here

博主微信公众号

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐