jenkins在window集群环境中如何部署自动化发布?
1、公司环境,堡垒机window server 2008环境
2、软件应用,C#、前端React/vue
3、部署模式,前后端分离每两台机器进行负载均衡,如70/71(前端服务器)、113/114(接口服务器),测试环境服务器:168(前端服务器)、48(API服务器)
4、假设这几台服务器都在同一个局域网,相互可以访问
测试环境部署jenkins模式:
第一步,在本地开发环境安装jenkins,如localhost:8080,使用花生壳内网穿透作为webhook配置在github上
第二步,在168服务器上部署FTP站点,接受jenkins上传的项目部署包
第三部,在jenkins上创建任务,提交到github后会自动构建,然后打包上传到168服务器指定站点
以上操作都是好的,且能正常运行!如图
但我现在有一些问题:
问题1、当我在本地jenkins上执行任务的的时候,构建前操作的备份bat脚本,其实是在本地执行而不是服务器上。我要如何解决此问题如:
@echo offecho 开始备份...
set yy=%DATE:~0,4%
set mm=%DATE:~5,2%
set dd=%DATE:~8,2%
set hh=%time:~0,2%
set mi=%time:~3,2%
set ss=%time:~6,2%
echo 正在复制"D:\WebSite\txz2020uat\build"文件夹的内容至"D:\BAK"文件夹下......
xcopy "D:\WebSite\txz2020uat\build" "d:\bak\txt2020uat\%yy%%mm%%dd%%hh%%mi%%ss%" /e/I/d/h/r/y
exit
echo 备份完成...
问题2、我现想在jenkins上进行创建任务把站点部署到生产环境70/71上,那我的jenkins是不是分别要在70/71服务器上分别安装然后部署?我觉得这样非常的不科学,是否有其他方式?
回答
1、第一步,在WINDOW服务器上安装SSH,见https://www.cnblogs.com/chenmingjun/p/8535067.html 安装成功后如果一直提示密码错误,则需要重启FreeSSH服务
2、第二步,在JENKINS中添加 SSH
3、第三部,在任务中使用SSH进行部署,网站站点会进入当前登录用户根目录下 如 C:\Users\Administrator ;
3.1 先执行站点备份,再把当前站点发布
C:/Users/Administrator/txz2020uat/bak.bat
@echo offecho 开始备份...
set yy=%DATE:~0,4%
set mm=%DATE:~5,2%
set dd=%DATE:~8,2%
set hh=%time:~0,2%
set mi=%time:~3,2%
set ss=%time:~6,2%
echo 正在复制"D:\WebSite\txz2020uat\build"文件夹的内容至"D:\BAK"文件夹下......
xcopy "D:\WebSite\txz2020uat\build" "d:\bak\txt2020uat\%yy%%mm%%dd%%hh%%mi%%ss%" /e/I/d/h/r/y
echo 备份完成,开始发布...
xcopy "C:\Users\Administrator\txz2020uat\build" "D:\WebSite\txz2020uat\build" /e/I/d/h/r/y
echo 发布完成!!
exit
总结
1、如果需要把局域网内的window服务器统一一个JENKINS管理,则需要在每台服务器上安装window ssh;
2、如果安装window ssh 后,一直登陆提示密码失败,则需要重启FreeSSH服务;
3、服务器上防火墙22端口,出站入站需要打开;
4、创建任务的使用使用publish over ssh进行部署并进行相应的备份等操作;
问题
直接把 C:/Users/Administrator/txz2020uat/bak.bat
内容中的脚本放到jenkins中执行会报错,目前不知是何原因,解决后第一时间更新。
- 以上操作仅限本人在测试环境测试通过,如在生产环境请在运维人员指导下谨慎使用,本人不对以上分享产生的风险负责。
以上是 jenkins在window集群环境中如何部署自动化发布? 的全部内容, 来源链接: utcz.com/a/64675.html