惊!测试大佬钟爱的Jenkins自动化部署如此简单,帮你解放时间!
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。这是百度百科给出的名词解释。如果大家不太理解,我可以给大家举个例子。
比如说,一个产品,定义了很多条需求。如果等到所有需求开发完成,再进行测试,需要耗费大量的时间。如果测试与开发可以并行,就会缩短项目周期。思想如下:
一条业务线运行,先开发,后测试,假设需要10天;那么测试开发并行可能7、8天就能结束工作;但是我们发现每一次测试前,都需要部署。重复的部署工作,还是耗费了一些时间的,如果可以让电脑自动完成部署工作,是不是6、7天就能完成工作?这个就要具体去分析部署的工作流程了。
这是一个比较简单的部署流程,除了源码下载,其余各阶段,自动化执行都比手工敲打命令速度要快。所以部署的节省时间可以用下面这个公式去计算
节省时间=(单次手工部署耗时*部署次数)-(手工编写脚本耗时+单次自动部署耗时*部署次数)
假设每次手工部署需要20分钟,自动化部署需要8分钟,部署10次,编写脚本20分钟
那么节省时间=(20*10)-(20+8*10)=100分钟
若系统需要分布式部署,节省时间就是成倍增长的。只要节省时间较大,自动化部署方案就可以执行。这便是自动化部署的第一个有点,节省时间。
自动化部署的第二个优点是部署流程严格按照规范执行。其实很多公司在设计、开发、测试、运维等工作领域都制定了一套适合自己公司的流程规范以及制度。但实际上,这些流程和规范随着时间的推移,逐渐被淡化,甚至有些公司在立项时,整个项目就已陷入混乱而不自知。但是机器则不同,每次都会按照你所制定的方案严格执行。
举个例子,上述部署流程的第二步是备份老系统。很多公司没有专业的运维人员,都是开发或测试兼职,在部署上,安全意识淡薄,可能前几次部署,还会去备份,然后就会觉得麻烦,渐渐抛弃这个步骤,等到部署出现问题,需要回滚时,才发现没有备份。所以最近几年,不乏有一些大厂出现删库跑路的新闻,若真的备份了,即便删了库,还原就行了,又何必跑路呢?但是自动化部署就不同,只要你在里面编写备份的脚本,部署成功后,就一定可以找到备份文件。
自动化部署的第三个优点是输入命令的准确率100%。这个也很好理解,人总有疲惫、心烦等各种情绪和状态,即便是满血状态,也可能会在输入命令的时候,打错个别单词,若是在上述部署流程中的“修改配置文件”环节打错字,系统不会报错,待服务启动后,发现各种问题,才回去检查之前的步骤,此时已经耽误相当多的时间了。对自动化部署而言,这条优点就完美体现出来了。
当然优点不止这3条,缺点也是有的,我就不一一列举了。持续集成的工具有很多,如TeamCity、Jenkins、Buildbot等。目前Jenkins的使用人数占比相对较高,下面我就从安装到工程的构建介绍一下Jenkins的使用。
Jenkins的官网可以下载到Jenkins的安装包,不同的平台,选择不同的入口
例如Windows,Linux的各个版本等。Windows直接下载压缩包,解压后运行msi,一直点击下一步,即可完成安装。
Linux的安装,可以下载到本地安装,也可以在线安装,不同的Linux安装命令也不同,例如Ubuntu的命令是apt,CentOS的命令是yum。
安装完成后,打开浏览器,输入localhost:8080
第一次安装,需要解锁,解锁密码就在红色路径的文件里。解锁后,根据提示安装插件,创建管理员账号,安装就算完成了。如果在安装后发现8080端口被占用,导致Jenkins无法运行,应该先停止Jenkins服务,然后找到配置文件修改端口号。Windows的配置文件,就在Jenkins安装路径Jenkins.xml文件中修改。而Linux则是在/etc/sysconfig/jenkins文件中修改,不同版本的Linux或许配置文件位置不同,但都在/etc下,仔细找找是可以找到的,也可以用whereis来查找。
点击系统管理→插件管理→可选插件,进行搜索,选中后点击安装。安装成功后,刷新页面,就可以在已安装页面中找到。
我这里用的是git管理源码,如果是svn,操作方法是相同的。安装git插件,搜索git,如下图
安装后,在系统管理→全局工具配置页面下,配置本机git环境
如果Jenkins服务器和部署的目标服务器不是同一台机器,那么就需要配置一个远程节点。类似于Jmeter的分布式压测。
点击系统管理→节点管理→新建节点,如下图
输入节点名称,选择固定节点,点击确定
到这个页面后,Linux和Windows的配置方法是不一样的,我先介绍一下Linux的配置方法。描述字段为了后期方便管理,最好写上和服务器相关的信息,例如IP,项目名称等。远程工作目录是Jenkins调用该节点时,工作文件的保存路径。
创建好以后,返回节点列表,会显示一个红色的叉,代表没有连接成功。稍等1分钟,刷新页面,若红色叉消失,代表已经连接成功。如下图
若始终显示未连接,则需要检查目标服务器的IP,帐号密码是否正确,端口号是否被防火墙拦截等。
Windows配置远程节点,如下图
配置完成后,返回节点列表
目前状态是未连接,他不会像Linux那样自动连接,需要我们手动建立连接。点击名称,跳转到如下页面
这里提供了两种建立连接的方式,第一种比较简单,点击Launch按钮,会下载一个slave-agent.jnlp文件,将这个文件发送到远程机上,双击运行,如下图
节点的红色叉消失,连接成功。
第二种方法是点击agent.jar,下载文件。复制页面的命令
在agent.jar前面加上本地路径,例如D:/download/agent.jar
localhost要改成Jenkins服务器的ip
运行结果如下,出现Connected表示连接成功
……
立即点击阅读原文查看全文
Continue
点击阅读☞
点击阅读☞
点击阅读☞
点击阅读☞
点击阅读☞