Windows服务器实现⾃动化部署-Jenkins
在引⼊⾃动化部署⼯具的时候,对⽐了jenkins和gitlab CI,jenkins有⾮常丰富的插件,配置起来⽅便。gitlab CI更倾向于脚本配置,当然jenkins也可以使⽤pipeline实现全脚本化配置。我们这⾥主要讲述jenkins的⾃动化部署。基本组合是jenkins+git+msbuild,实现从代码仓库拉取、编译、打包、部署、⾃动化测试。( core和framework4.6.1可以不依赖msbuild构建)张根硕最新电视剧
⼀、Jenkins概述
Jenkins是⼀个独⽴的开源软件项⽬,是基于Java开发的⼀种持续集成(CI)⼯具,⽤于监控持续重复的⼯作,旨在提供⼀个开放易⽤的软件平台,使软件的持续集成变成可能。前⾝是Hudson是⼀个可扩展的持续集成引擎。可⽤于⾃动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚⾄可以通过安装Java Runtime Environment的任何机器独⽴运⾏。通常与版本管理⼯具、构建⼯具结合使⽤。常⽤的版本控制⼯具有SVN、GIT,构建⼯具有Maven、Ant、Gradle、MSBuild。
1、CI/CD是什么
CI(Continuous integration)是持续集成。持续集成强调开发⼈员提交了新代码之后,⽴刻进⾏构建、测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在⼀起。借⽤⽹络图⽚对CI加以理解。
CD(Continuous Delivery,中⽂意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运⾏环境(类⽣产环境)中。⽐如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续⼿动部署到⽣产环境。下图反应的是CI/CD 的⼤概⼯作模式。2、Jenkins特点:
开源免费;
跨平台,⽀持所有的平台;
master/slave⽀持分布式的build;
web形式的可视化的管理页⾯;
安装配置超级简单;
tips及时快速的帮助;
已有的200多个插件
3、Jenkins的⼀个⼯作流程
win7密钥互联⽹软件的开发和发布,已经形成了⼀套标准流程,假如把开发⼯作流程分为以下⼏个阶段:编码→构建→集成→测试→交付→部署
⼆、Jenkins简单安装及配置(Windows环境)
Windows平台下,⼀般安装⽅法有2种:安装程序exe安装和war包安装,本⽂以war包安装为例⼦
1、安装Java环境
微博 阅读Jenkins是java开发,因此需先安装对应,注意版本兼容,因为我要下载Jenkins2.226版本,所以我们需要下载Java的版本是8到11,否则不兼容。
下载成功后,双击安装包,⼀直下⼀步即可,安装完成之后需要配置环境变量,如下图:
系统变量->新建,变量名JAVA_HOME,值对应的是JDK的安装路径。
选择名为Path的系统变量,点击编辑,在变量值末尾加上 %JAVA_HOME%\bin
检验是否配置成功:在命令提⽰符输⼊:java -version
2、Jenkins简单安装
下载完成后,进⼊命令⾏模式,直接定位到jenkins.war所在的⽬录,然后执⾏下⾯的命令:
耐⼼等⼏分钟,出现如下页⾯
第⼀次使⽤jenkins时,为了安全考虑,会⽣成⼀串字符⼝令!进⼊对应的路径,打开该⽂件,将对应的字符复制进输⼊框内,点击继续按钮,等待安装成功。我们先不安装插件,回头⾃主安装,操作如下:
跳过插件安装后,接下来就是创建⼀个管理员账号了,界⾯如下:
输⼊⽤户名root,密码qxh123,点击保存并完成,jenkins就安装成功了
3、Jenkins插件安装
Jenkins配置成服务中国邮政汇款查询
Jenkins安装成功后,可已经将它设置成Windows服务,不⽤每次通过命令提⽰符输⼊命令启动了。设置成服务的⽅法如下:
按照提⽰就可以配置成功了,在Windows服务列表中就可以到jenkins了
插件下载提速
下载插件太慢了,默认插件下载是从jenkins官⽹的地址下载,太慢了。将地址替换为以下地址
mirrors.tuna.tsinghua.edu/jenkins/updates/update-center.json
进⼊jenkins系统管理,进⼊插件管理,点击⾼级,修改升级站点的地址
然后重启jenkins服务。然后发现还是慢,该下载失败的还是失败。查看错误信息,发现下载地址仍然是官⽹地址。所以直接打开jenkins所在⽬录:
⾸先到default.json⽂件,⼀般在Jenkins服务update⽬录下,替换内容:
替换 /download 为 mirrors.tuna.tsinghua.edu/jenkins
替换 updates.jenkins.io/download 为 mirrors.tuna.tsinghua.edu/jenkins
替换 le 为 www.baidu
然后到l⽂件
替换 url 为 mirrors.tuna.tsinghua.edu/jenkins/updates/update-center.json
通过以上⽅法,我这边就可以了,很快,看下效果:
Git插件安装
代码基本都是使⽤Git管理的,所以下载Git插件。进⼊“系统管理”->“插件管理”,安装git插件。
Msbuild安装
其实我们可以在jenkins中下载msbuild插件的,但是考虑到不兼容性问题(⽐如,我们下载的msbuild版本不⽀持C#8.0语法,我们源代码就没办法构建了,编译经常出错)。所以最彻底的⽅法就是安装VS,然后在“系统管理”->“全局⼯具配置”中配置VS⼯具中的msbuild路径。
jenkins
梦见好多坟墓折腾到现在,突然感觉英⽂版的还是有点不⽅便的,虽然能看懂⼤部分,但是有些细节的地⽅真没⼼思去看。
安装插件Localization:Chinese,然后重启jenkins服务即可。效果如下:(哈哈,中英⽂参半,可以了)
4、jenkins插件配置
进⼊插件管理-全局⼯具配置,如下git已经配置好了,就是我们下载的git插件
然后配置MSbuild,我们这⾥使⽤VS2019上的MSbuild,避免代码和msbuild的版本不兼容。⼀般存在于⽬录C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin中,配置结果如下:
三、使⽤Jenkins进⾏代码测试、打包(未完待续)
如下图所⽰,操作如下:
下图是构建任务设置界⾯,可以看到上⽅的⼏个选项"General", "源码管理", "构建触发器", "构建", "构建后操作"。下⾯逐⼀介绍。
General
General是构建任务的⼀些基本配置。
Discard old builds:设置构建历史的保存策略
配置windows update失败 log Rotation:⽇志循环
保持构建的天数:意思就是根据你所填写的天数来保存构建记录
保持构建的最⼤个数:意思就是有⼏条构建记录就保存⼏条
发布包保留天数:例如我们发布的war包等的保存天数
发布包最⼤保留#个构建:例如我们发布了⼏个war包,就保存⼏静默期:设置⼀个时间来间隔每次构建的间隔
重试次数:这个和系统设置的⼀样,拉取源码重试的次数
该项⽬的上游项⽬正在构建时阻⽌该项⽬构建:⽤于上游项⽬有关联的构建策略
该项⽬的下游项⽬正在构建时阻⽌该项⽬构建:⽤于下游项⽬有关联的构建策略
使⽤⾃定义的⼯作空间:使该项⽬独⽴于系统的⼯作空间
源码管理
源码管理就是配置你代码的存放位置。
Repository URL:仓库地址,和平时使⽤git下载仓库差不多的配置,我使⽤的是HTTPS的⽅式
Credentials:凭证。可以使⽤HTTPS⽅式的⽤户名密码,也可以是RSA⽂件。但要通过后⾯的"ADD"按钮添加凭证。
Branches to build:构建的分⽀。*/master表⽰master分⽀,也可以设置为其他分⽀。
源码浏览器:你所使⽤的代码仓库管理⼯具,如github, gitlab.
构建触发器
就是构建任务的触发器。
触发远程构建(例如,使⽤脚本): 该选项会提供⼀个接⼝,可以⽤来在代码层⾯触发构建
Build after other projects are built:该选项意思是"在其他projects构建后构建"。
Build periodically:周期性的构建。很好理解,就是每隔⼀段时间进⾏构建。如下图的设置,表⽰每隔30分钟进⾏⼀次构建
Poll SCM:该选项是配合上⾯这个选项使⽤的。当代码仓库发⽣改动,jenkins并不知道。需要配置这个选项,周期性的去检查代码仓库是否发⽣改动。如下图,⼗分钟检查⼀次
构建环境
构建环境就是构建之前的⼀些准备⼯作,如指定构建⼯具(在这⾥我使⽤MSBuild)。
发布评论