什么是可持续化?
1、 开发人员将代码提交到SVN/GIT等代码管理工具中;
2、 运维/测试 从SVN/GIT 下载最新的代码本地测试;
3、 运维/测试 通过mstsc或者其他方式 进入部署环境机器;
4、 停止要更新的服务。
5、 替换程序包;
6、 启动服务。
2.没了。
本次运行环境:Windows 7 64位操作系统/Windows Server 2012 R2 Standard
使用工具及版本:jdk-8u45-windows-x64
apache-tomcat-7.0.75
jenkins.war(版本Jenkins2.121.1)
maven
svn
Git-2.18.0-64-bit
freeSSHd
putty-64bit-0.70-installer
工具说明:
jdk:JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
jre:JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
apache-tomcat:Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。 Apache和Tomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序(jsp,servlet)。
两者都是一种容器,只不过发布的东西不同:Apache是html容器,功能像IIS一样;Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的websphere、BEA的Weblogic,sun的JRun等等。
jenkins:Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有。它的前身是hudson,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson。
maven:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Git:Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
freeSSHd:SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
putty:PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。
搭建环境
JDK安装与环境变量配置
https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html
apache-tomcat安装
下载压缩版apache-tomcat-7.0.75,直接解压。
maven的安装
https://jingyan.baidu.com/article/4f7d5712a1306c1a21192746.html
svn安装
不需要下载jenkins已经集成,可以jenkins中Global ToolConfiguration进行配置。
git安装
https://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html
freeSSHd安装
https://jingyan.baidu.com/article/f7ff0bfc1ebd322e27bb1344.html
putty安装
https://jingyan.baidu.com/article/90bc8fc8b9bca1f653640ca5.html
Jenkins安装
我们本次用的是Jenkins.war,下载完成后将其放在我们之前解压的apache-tomcat-7.0.75下面的webapps中。
下载地址:https://jenkins.io/download/
Jenkins启动
有些人可能会出现下面这种情况,也可以直接选择安装推荐的插件。
信息录入完成后,点击保存并继续。
以后的访问,我们直接输入我们之前创建的管理员用户进行登录即可。
我们由于某些原因跳过了插件的安装,我们这边先对我们本次需要用到的功能的插件进行下载。
如果需要更换Jenkins主目录,需要先看Jenkins系统配置中更改主目录再进行插件的下载。
点击按钮,进入管理Jenkins页面。
点击按钮,进入可选插件页面。
如果这时候我们会发现,没有让我们下载的插件列表,点击按钮,还出现了报错页面。
我们进行以下操作,如果有插件列表则忽视以下操作。
通过之前讲解的步骤,重新进入插件管理页面,点击按钮,进入设置页面。
在下方有一个升级站点的输入框,
将内容替换为
http://mirror.xmission.com/jenkins/updates/update-center.json
这回我们再点击插件按钮,进入插件下载页面。
本次我们需要下载的插件为:
Subversion Revert GitLab Pipeline Maven Integration Maven Integration
主目录显示的是 C:\Users\Administrator\.jenkins 这是一个默认地址,我们可以更换主目录。
在环境变量中新增系统变量
变量名 JENKINS_HOME
变量值:D:\apache-tomcat-7.0.75\webapps\jenkins
我这里做的例子,你可以放在你想放在的目录中。
配置好后,重启服务。
此时,登陆页面需要我们再去文件中找到密码粘贴上去。
因为我们更换了主目录,相当于进行了初始化,所以插件还是需要重新下载。
再次进入系统页面,我们可以看到主目录已经进行了更换。
配置完成后,重启SSH,然后再server Status 中启动我们的SSH Server
这里的内容我们不用去动。
添加一个SSH Servies,按照下图配置,返回连接正确。
此外,页面上方的maven配置按照图片选择,目录为maven的setting.xml
构建理想目的:当我们将代码进行提交时,Jenkins会监听代码版本管理系统(GIT/SVN等),如果有代码更新,会自动进行将我们提交完成的代码,打包发布到服务器上,服务停止,原有项目进行备份,新打包的项目放到指定位置,重启服务。
由于时间原因,除了监听代码版本,其他的会给大家实现,监听后期还会写一个博客,欢迎大家一起研究。
在Jenkins首页,点击按钮,新建一个任务名称叫maven-test的maven项目。
进入项目,点击按钮,进入项目的配置页面。
因为我们本次用的git,所以源码管理选择git,Repository URL为我们项目Git地址,Credentials为本地Git生成的id_rsa的key。
设置完成后,点击应用及保存按钮,回到项目页面。
点击按钮,可以查看构建的进程。
点击可以查看详细输出过程及结果。
脚本编写主要实现服务停止,将原有webappsa下文件按照时间进行备份,删除webappsa文件夹,创建webappsa文件夹,将新生成的项目放在新创建的webappsa下,启动服务。
其中因为tomocat中的shutdown.bat有时不靠谱,直接进行的强杀。
在Post Steps中选择Run only if build succeeds or is unstable 。
这样我们就配置完成了,点击应用及保存按钮,回到项目页面。
进行项目的构建,点击查看进程。
点击按钮查看详细过程及结果。
可以看到服务被我们强杀之后,原有项目进行了一个备份,新项目重新部署后,服务进行了重启,这样我们就简单的完成了本次构建。
构建的目的及实现的目标跟上面的一样,只不过换了一个代码管理软件Git换成了SVN,所以我这里主要讲一下如何配置SVN。
新建一个maven项目,源码管理我们选择Subversion。
添加完成后,选择我们刚才添加的账号。
其中pom.xml在我们获取的文件夹下,所以这里不需要修改。
点击应用及保存,返回项目页面。
点击按钮,开始项目的构建。
构建成功后查看构建结果,控制台输出内容显示成功。