Jenkins自动化构建并发布
一、环境准备
主机 | OS | 服务 | 备注 |
192.168.1.1 | Ubuntu16.04 | jdk,tomcat,nginx,jenkins,git | jenkins主机 |
192.168.1.2 | Ubuntu16.04 | git | 项目运行主机 |
jdk与tomcat等常见服务的安装过程略过,下载包解压即可
二、tomcat的调优
1.在$catalina_home/conf/tomcat-users.xml中的<tomcat-users>标签内新增
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="username" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
role为新增身份,user则是创建用户并赋予这个用户以上这些身份,具备这些身份后则可以在tomcat的首页登陆manager app页面对tomcat应用列表进行管理
2.在$catalina_home/bin/catalina.sh中的cygwin行前新增参数设置JVM的内存
export JAVA_OPTS="-Xms512m -Xmx1024m"
export JENKINS_HOME="/data/jenkins"
-Xms:初始堆大小,-Xmx:最大堆大小
JENKINS_HOME提前设置好jenkins的数据目录
3.编辑$catalina_home/conf/server.xml在Connector标签页前新定义一个新的线程池并对这两个标签页优化
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="200" minSpareThreads="20" maxSpareThreads="50" maxIdleTime="60000"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="30000"
redirectPort="8443"
executor="tomcatThreadPool"
URIEncoding="UTF-8"
enableLookups="false"
acceptCount="100"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"/>
Executor是线程池,也可以直接配置在connector标签中,主要用于定义connector的线城参数
name:线程池名称
maxThreads:最大线程数,默认值为200
minSpareThreads:最小空闲线程数,默认值为10
maxSpareThreads:最大空闲线程数,空闲的线程数超过该值就会开始关闭不再需要的socket线程
maxIdleTime:
Conector是连接器,负责接收客户端的请求,以及向客户端返回响应,以下是该标签常用的参数说明:
port:端口
protocol:协议
connectionTimeout:网络连接超时(毫秒)
redirectPort:
executor:绑定的线程池的名称
URIEncoding:指定tomcat容器的编码
enableThreads:是否反查域名,为了提高处理能力,设置为false
acceptCount:当所有可以使用的线程数都被使用时,排队等待队列的最大长度,超过该值的请求不予处理,默认值为100
compression:是否对响应数据进行GZIP压缩(off:禁止压缩;on:允许压缩(文本);force:所有情况都压缩)默认值为off,压缩后一般可以减小1/3左右,节省带宽
compressionMinSize:压缩响应的最小值,超过该值的报文大小才会压缩,默认值为2048
compressableMimeType:压缩类型
4.编server.xml中的Host标签页调整虚拟主机及主目录
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="jenkins" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="jenkins_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
Host是虚拟主机,以下是该标签页的参数说明:
name:该标签页的名称,该值会在上层Engine引擎标签页中调用
appBase:该虚拟主机的应用目录,可以为相对路径也可以为绝对路径
unpackWARs:是否自动解压WAR包
autoDeploy:是否自动发布,例:当前tomcat启动情况下在webapps下放入war包,不需重启即可发布
Context为上下文,我的理解主要类似于PHP的定位url路由功能
path:即访问路径
docBase:上个参数提供的访问路径请求的主目录,例:localhost:8080/ 不需要跟jenkins应用名即可访问到jenkins项目
reloadable:
Valve该标签页主要的参数是 directory 与 prefix ,即日志保存路径与日志文件名
注:默认的webapps目录中有许多tomcat自己的管理工具,在我们自己的项目中其实并不会用到反而会拖累我们的项目启动速度,可以将appBase设置为我们另外建立的专门用于存放项目的目录
5.编辑$catalina_home/conf/context.xml在Context标签页内新增静态资源缓存参数
<Resources cachingAllowed="true" cacheMaxSize="100000"/>
cachingAllowed:开启静态资源缓存
cacheMaxSize:静态资源缓存的最大大小,默认为10兆,对Jenkins来说默认值太小,我们调大为100兆
三、运行Jenkins
1.下载war包并传入的webapps目录下后启动并查看状态
cd /usr/local/tomcat/webapps/
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
/usr/local/tomcat/bin/startup.sh &&tailf /usr/local/tomcat/log/catalina.out
2.启动成功后访问页面根据提示配置
使用推荐安装的插件即可
创建一个管理员用户,如不想创建点击箭头初使用第一个页面时使用的默认的admin用户即可
初始化完成后在url后加上 /restart 重启jenkins
安装语言插件并设置为中文简体,旧版本仅需安装第一个插件即可,新版还需安装第二个插件
3.设置全局配置
[系统管理] --> [全局工具配置]
配置我们jenkins本机的jdk与git的可执行程序的位置,由于我们没有设计JAVA项目,所以没有使用Maven,有使用的可以单独配置,配置基本一致
4.项目插件需求的安装
安装后在jenkins的地址后跟上restart确认重启 例:http://localhost:8080/restart
5.添加远程主机
[系统管理] --> [系统设置]