前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文件替换,速度是相当的快,最终把影响降到最低。 所用到的插件: 文件复制插件,从master复制到slave:【Copy Data To Workspace Plugin】:https://wiki.jenkins-ci.org/display/JENKINS/Copy+Data+To+Workspace+Plugin 注意:此插件很久没有更新,一次只能是一个目录! 前提: 必须有两台服务器,且已经配置了slave的节点,参考:(Windows)http://www.cnblogs.com/EasonJim/p/6054436.html 实现思路: 1、在测试环境应该模拟和生成环境的配置和编译版本保持是Release状态,且功能已经满足预期发布需求。 2、通过文件复制插件,复制测试环境上的部署文件到生成环境上的jenkins工作空间。 3、通过批处理处理不需要覆盖的文件或者临时要修改的配置等。 4、利用rar备份生成环境上即将要覆盖的文件,注意命名上遵循一定规律:日期-项目-文件夹-{BuildID}.bak.rar。 5、利用批处理进行从生成环境的jenkins工作空间上把文件复制到站点上,常用命令:xcopy。 具体的实现步骤: 1、在jenkins上安装【Copy Data To Workspace Plugin】文件复制插件: 【系统管理】->【管理插件】->点击【可选插件】->搜索框输入【Copy Data To Workspace Plugin】 查看原图 查看原图 2、新建工程,把上面实现思路配置进去: 新建项目,注意:这里要选择【构建一个自由风格的软件】,不然复制文件插件无法复制! 查看原图 如果你出现了“Waiting for next available executor”,那么有可能是你选择成了【构建一个多配置项目】 进入项目详情页面,填写备注等信息,注意页面上的选择 查看原图 关联这个项目这能运行在这个节点上,这里的节点的选择是通过新建节点时输入的标签名称,注意页面上的选择 查看原图 选中复制文件插件,并指定要从master复制的文件夹,注意页面上的选择 查看原图 添加批处理进行slave的文件夹备份,注意页面上的选择 查看原图 填写备份的配处理,这里我用了RAR的压缩命令,所以如果要用RAR的时候,确保机器上已经安装。且,备份后的文件我写的比较有规律: 查看原图 命令:
1 |
start c:\"Program Files"\winrar\rar.exe a -k -r -s -m1 -agYYYYMMDDHHMMSS-NN{-Admin-%BUILD_ID%.bak} {要备份到的文件夹} {要备份的文件夹} |
再增加一个批处理,进行刚在master复制到slave的工作空间的文件用xcopy命令覆盖slave上的站点Admin文件夹 查看原图 这里使用xcopy命令进行复制 查看原图 命令:
1 |
xcopy /y /e /r {slave工作空间上的项目文件夹} {要复制到替换的文件夹} |
最后【Save】,可以测试是否成功了。 注意:如果中途没有截图的选项,一般默认不选择,其实也可能根据需要进行选择。 如果想要在构建完之后,观察是否成功复制等信息,可以点【增加构建后操作步骤】来增加配置邮件的发送等操作。 后话: 有一键部署,那么肯定就有一键回滚,可以参考:http://www.cnblogs.com/EasonJim/p/5945266.html 最后是部署环境拓扑图和流程:http://www.cnblogs.com/EasonJim/p/6007669.html from:https://blog.csdn.net/orichisonic/article/details/54706712
View Details2.0版本以上默认加入了权限插件,所以在进入主界面时是需要登录的。 一、主界面->【系统管理】->【管理节点】->【新建节点】,进行节点的添加: 二、输入节点名称,已经选择【Permanent Agent】,这里和1.x版本的【Dumb slave】一样的效果 三、next,配置如下图: 其中,有如下几点需要注意: 【# of executors】根据CPU的个数来填写数量 【远程工作目录】这个就是用来存放master到slave时,存放的临时目录,如slave的服务软件也会放在此,并且会以每个job名称来区分开 【用法】只需要选择【只允许运行绑定到这台机器的Job】这种模式下,Jenkins只会构建哪些分配到这台机器的Job。这允许一个节点专门保留给某种类型的Job。例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建,一个实行者不会阻止其它构建,其它构建会在另外的节点运行。 【启动方式】只需要选择【Launch agent via Java Web Start】,以服务的方式启动,应用最广且最好配置,其余的都太复杂,不建议使用。注意:2.x版本的默认没有这个选项,需要单独开启,参考:http://www.cnblogs.com/EasonJim/p/5997490.html 其余的基本按照上面默认选择即可。 四、点击【Save】后,master上已经配置好节点,那么接下来就是到节点的服务器上安装slave的服务: 点击右侧列表的节点服务器,此时节点并未连通。 进入详情页面,会提示你如何安装服务: 说明:这个是一个java的服务,节点上必须安装了jdk后才能下载运行此服务,我使用了一个简单的方法,先把整个浏览器的url拷贝下来,然后在节点服务器上输入url进入以上的详情页面,然后点击【Launch】按钮下载服务,最后点击运行。 当在节点点击【Launch】按钮时,可能会出现弹出下载的一直卡住,可以尝试点击【取消】,然后在【Launch】按钮上右键另存为,保存在本地一个位置,然后双击再打开。 当在连接时,会出现如下的界面,没有【File】的选项,成功连接后,才会有【File】选项: 此时点击【Install as a service】按钮安装为服务,一路点yes。 安装成功后,你会发现,【d:\wwwroot\jenkins】文件夹多了一些文件,这个是服务所用到的问题,会实时连接master,实质上我观察的是轮询。注意:可能有些服务器上权限的问题,不会自动创建文件夹,你可以手动创建以上文件夹。 五、此时回到master上查看节点列表,你会发现刚才配置的节点连上了。 from:http://www.cnblogs.com/EasonJim/p/6054436.html
View Details