当前位置: 首页 > news >正文

linux jenkins添加windows节点,实现自动化部署

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

背景:
要基于jenkins的做代码自动更新部署,现状是jenkins在linux上,目标服务器的tomcat在windows上,如何将代码从linux发送到windows未找到合适方案,并且后续如何远程调用执行windows批处理也是问题。日后如有好思路,会补上,也欢迎大家提建议。

思路:
本人找到了个取巧的办法,在linux的jenkins上快捷添加windows jenkins从节点,从而实现基于windows的jenkins自动更新部署,具体流程是在linux的jenkins管理界面操纵windows的从节点jenkins在windows上更新部署等操作。

扩展:
本思路也适用于tomcat所在服务器和jemkins所在服务器jdk不相同、或环境不同时使用,尽管jekins可以配置指定jdk等,但有时不好使。并且此思路可想像的空间很多,望能抛砖引玉。

1、添加jenkins node
jenkins -> 系统管理 -> 管理节点  -> 新增节点

不懂的属性直接点右边问号

注意availability要如图一致,点击保存后,进入下一步。

2、下载jar包


3、运行jar包
打开从节点服务器,利用cmd命令,执行上述命令

4、新建自由风格JOB
配置使用哪个个节点执行任务

然后正常配置svn代码更新路径等信息,代码会直接更新到从节点的机器上。

5、在“构建”中添加“Execute Windows batch command”

set "y=%date:~,4%"
set "m=%date:~5,2%"
set "d=%date:~8,2%"

echo  date=%m%-%d%-%y%

xcopy D:\jenkins\workspace\hello\*.* D:\tomcat\hello /E /y /D:%m%-%d%-%y% /C

pause
通过xcopy将当天更新的文件替换到tomcat中,xcopy不懂的参数直接在cmd中输入 “xcopy /?” 查看中文帮助
本例只替换了当天更新文件,原因是项目文件太多,全局替换时间较长。但是有一个小遗憾,是删除的文件不会在tomcat同步删除,但应该无大碍。

默认拷贝时会忽略隐藏文件,正好忽略了workspace中.svn文件夹。

执行时是直接在windows从节点执行,免去远程调用的麻烦。

如果项目文件少,直接全局替换也没问题,去掉/D参数。

xcopy 本例用到参数说明

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]                          

  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
               如果没有提供日期,只复制那些源时间比目标时间新的文件。
  /Y           取消提示以确认要覆盖现有目标文件。 
  /C           即使有错误,也继续复制。
  /E           复制目录和子目录,包括空目录。与 /S /E 相同。可以用来修改 /T。

--------------------- 
作者:yfx000 
来源:CSDN 
原文:https://blog.csdn.net/yfx000/article/details/52023654 
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://my.oschina.net/u/4000302/blog/3051857

相关文章:

  • 理解 Android MVP 开发模式
  • 文本文件查看及创建
  • Jquery easyui tree 一些常见操作
  • 设计模式(二十三)中介者模式
  • 3.7、@ResponseBody 和 @RestController
  • C 语言 格式化输出输入
  • ls输出显示命令总结
  • 指针
  • 第二周 词频统计
  • java之struts2的action的创建方式
  • linux安装openssl、swoole等扩展的具体步骤
  • CSS 分享
  • VS2017 常用快捷键
  • Vue.js源码(2):初探List Rendering
  • 如何把文字转换成语音,文字转语音转换器能帮你
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Apache Spark Streaming 使用实例
  • export和import的用法总结
  • HTML-表单
  • Mac转Windows的拯救指南
  • MYSQL 的 IF 函数
  • MySQL的数据类型
  • Otto开发初探——微服务依赖管理新利器
  • SQL 难点解决:记录的引用
  • 从重复到重用
  • 高程读书笔记 第六章 面向对象程序设计
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 解决iview多表头动态更改列元素发生的错误
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 免费小说阅读小程序
  • 区块链将重新定义世界
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • MPAndroidChart 教程:Y轴 YAxis
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (33)STM32——485实验笔记
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (poj1.2.1)1970(筛选法模拟)
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Micro Framework初体验
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net通用权限框架B/S (三)--MODEL层(2)