一、传统发布流程 VS 持续集成
传统的发布流程:
本地把项目打包
通过FTP等工具,传输到服务器
关闭tomcat,把打包的项目放到webapp目录下
启动tomcat
缺点:
速度慢
容易出错
有了jenkins以后的发布流程:
用户在jenkins上点击某个按钮进行发布
jenkins收到发布命令
jenkins从SVN上把源代码download下来
jenkins根据你设置的mvn命令进行打包
jenkins把你打包的好的war工程传输到tomcat的webapps目录下
tomcat启动
对于程序员而言,只要做两件事:
在jenkins上配置某个项目的部署流程
在jenkins上点击某个项目的部署按钮,进行一键部署
对于想要快速部署Jenkins,那么推荐采用下面的这种 “WAR包” 的方式进行安装,如果需要更好的把控Jenkins,想要自己进行更加细致的配置,那么建议采用 “YUM安装” 的方式(安装方法见我的文章 “ CentOS部署Jenkins-YUM安装(方法2) ” )。
二、部署方法
WAR包安装方法的推荐配置:
至少是Java 7,但建议使用Java 8
内存大于512MB
安装准备:
安装JDK、Tomcat
配置好tomcat的虚拟目录,端口可以被正常访问
安装方法:
1.网站根目录创建jenkins的webroot目录
[root@iZbp ~]# cd /data/wwwroot/
[root@iZbp wwwroot]# mkdir jenkins
2.下载jenkins的war包
[root@iZbp wwwroot]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
3.重启tomcat服务
[root@iZbp wwwroot]# service tomcat restart
4.防火墙添加规则,允许9009端口的访问通过
[root@iZbp wwwroot]# iptables -A INPUT -p tcp --dport 9009 -j ACCEPT
[root@iZbp wwwroot]# service iptables save
[root@iZbp wwwroot]# service iptables restart
三、浏览器访问,并初始化配置
1.打开浏览器,访问[http://x.x.x.x:9009,开始配置jenkins]
查看初始密码位置:
[root@iZbp wwwroot]# cat /var/lib/jenkins/secrets/initialAdminPassword
c1b6a0048f714df99b6bc44bf7f49ebc
参考链接:官方指引:https://jenkins.io/doc/
tomcat的server.xml推荐配置:
<Service name="Catalina4">
<Connector port="9009"
protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="1000"
minSpareThreads="20"
acceptCount="1000"
maxHttpHeaderSize="65536"
debug="0"
disableUploadTimeout="true"
useBodyEncodingForURI="true"
enableLookups="false"
URIEncoding="UTF-8" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/></Realm>
<!--&vhost-jenkins.xxx.com;-->
<Host name="localhost" appBase="/data/wwwroot/jenkins" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/wwwroot/jenkins/jenkins" debug="0" reloadable="true" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="jenkins.ddxstore.com_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
<Environment name="JENKINS_HOME" value="/data/wwwroot/jenkins/jenkins" type="java.lang.String"/>
</Host>
</Engine>
</Service>