jenkins实现 windows server 2012环境下自动部署war
最近琢磨jenkins,实现了window server环境下的springboot工程的自动部署、停止与重启,现详细记录如下。服务器配置如下,使用的腾讯云15天免费体验服务器,安装软件为jenkins 、nginx、jdk。具体端口配置为jenkins 8080端口nginx 80端口,同时绑定域名 https://test.00fly.online应用服务器1:8081端口应用服务...
jenkins 系列文章,包含效果演示(2021-01-25 10:10:25 效果演示到期,轻量应用服务器只申请了试用2个月时间)以及实现说明:
jenkins实现 windows server 2012环境下自动部署war
jenkins实现Centos 7 下自动部署war
jenkins 实现gitbook项目(电子书)的自动发布
jenkins 实现源码到docker镜像的自动部署运行
最近琢磨jenkins,实现了window server环境下的springboot工程的自动部署、停止与重启,现详细记录如下。
- 服务器使用的腾讯云15天免费体验服务器,申请地址 https://cloud.tencent.com/act/free
安装软件为jenkins 、nginx、jdk、mysql 。
jenkins 下载地址为 https://jenkins.io/zh/download/ 选择windows安装包安装或war 运行。
具体端口配置为
- jenkins 8080端口
- nginx 80、443端口,同时绑定域名 https://test.00fly.online
- 应用1:8081端口
- 应用2:8082端口
具体操作流程为
- 安装nginx 1.16.0,配置负载均衡和ssl
- 安装jenkins
- 配置maven项目信息
- 配置脚本实现工程的编译、打包、停止应用、上传、启动应用。
nginx.conf配置文件为
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#设定负载均衡的服务器列表
upstream test {
#weigth参数表示权值,权值越高被分配到的几率越大
server 127.0.0.1:8081 weight=5;
server 127.0.0.1:8082 weight=5;
}
server {
listen 80;
server_name test.00fly.online;
}
server {
listen 443 ssl;
ssl_certificate C:/Java/nginx-1.16.0/cert/test.00fly.pem;
ssl_certificate_key C:/Java/nginx-1.16.0/cert/test.00fly.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
server_name test.00fly.online;
location / {
proxy_pass http://test;
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置构建触发器为 H/30 * * * * ,意思就是每30分钟打包发布一次。
jenkins 配置maven工程打包后步骤为执行windows batch command
配置脚本为
tasklist|find "javaw"
@echo off
@set port=8081
for /f "tokens=5" %%i in ('netstat -aon ^| findstr %port%') do (
set n=%%i
goto js
)
:js
@echo on
taskkill /f /pid %n%
copy target\springboot-dbutils.war C:\work\node\ /y
@echo off
cd C:\work\node\
start javaw -jar -Xms64m -Xmx64m springboot-dbutils.war --server.port=%port%
exit
@echo off
@set port=8082
for /f "tokens=5" %%i in ('netstat -aon ^| findstr %port%') do (
set n=%%i
goto js
)
:js
@echo on
taskkill /f /pid %n%
copy target\springboot-dbutils.war C:\work\web\ /y
@echo off
cd C:\work\web\
start javaw -jar -Xms64m -Xmx64m springboot-dbutils.war --server.port=%port%
@echo on
tasklist|find "javaw"
exit
jenkins运行console日志为:
19:52:39 [jks-demo] $ cmd /c call C:\Windows\TEMP\jenkins6777398386323004703.bat
19:52:39 channel stopped
19:52:39
19:52:39 C:\Java\Jenkins\workspace\jks-demo>tasklist | find "javaw"
19:52:39 javaw.exe 248 Services 0 189,576 K
19:52:39 javaw.exe 7596 Services 0 189,592 K
19:52:39
19:52:39 C:\Java\Jenkins\workspace\jks-demo>taskkill /f /pid 248
19:52:39 成功: 已终止 PID 为 248 的进程。
19:52:39
19:52:39 C:\Java\Jenkins\workspace\jks-demo>copy target\springboot-dbutils.war C:\work\node\ /y
19:52:39 已复制 1 个文件。
19:52:49 Process leaked file descriptors. See https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors for more information
19:52:49 [jks-demo] $ cmd /c call C:\Windows\TEMP\jenkins3155337006286886574.bat
19:52:58
19:52:58 C:\Java\Jenkins\workspace\jks-demo>taskkill /f /pid 7596
19:53:11 成功: 已终止 PID 为 7596 的进程。
19:53:11
19:53:11 C:\Java\Jenkins\workspace\jks-demo>copy target\springboot-dbutils.war C:\work\web\ /y
19:53:11 已复制 1 个文件。
19:53:11
19:53:11 C:\work\web>tasklist | find "javaw"
19:53:18 javaw.exe 7132 Services 0 153,524 K
19:53:18 javaw.exe 3172 Services 0 100,968 K
19:53:19
19:53:19 C:\work\web>exit
19:53:29 Process leaked file descriptors. See https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors for more information
19:53:29 Finished: SUCCESS
https://test.00fly.online 网站运行效果为:
可以看到应用实现了负载均衡,加载的war为C:\work\node\springboot-dbutils.war或C:\work\web\springboot-dbutils.war,对比war时间推算应用每半小时更新一次。
更多推荐
所有评论(0)