大家好,我是烤鸭:
今天分享的是 linux部署jenkins,tomcat9
安装环境:
linux centos7.2
tomcat 9.1
Jenkins 2.73
JDK 1.8
maven 3.5
git 2.9
1. 下载jenkins:
https://jenkins.io/download/ 我选择的war下载。
2. 安装jenkins
服务器上部署一个tomcat,把war包扔到tomcat的webapps下面,完活。访问的别忘记加项目名称(/jenkins)
3. 启动Jenkins:
首次进入,首先要输入一个密钥来进入Jenkins
,密钥可以在 /var/lib/jenkins/secrets/initialAdminPassword 获取
选择相应的选项来安装插件,选择系统推荐即可
会有失败的情况,我搜了下,说不影响,很多由于从国外的网站下,失败很正常,直接进行下一步,后面也可以再安装
接下来可以为Jenkins设置一个管理员帐户,以后就可以用它登录到Jenkins了
Jenkins安装向导成功完成后,就可以看到这个页面啦
以上部分内容来自:
http://www.jianshu.com/p/1a7f46896c40
4. 配置系统插件(jdk,maven,svn或git)
4.1 JDK Git
选择自己对应的安装路径即可:
4.2 maven:
4.3 创建项目
选择maven项目,起一个名字
项目配置:(我这里是有版本,带构建天数的,可以不一样的。)
4.3.1 源码管理:
我这里用的git,svn是一样的,填写项目地址,我用的是码云的仓库。
这里报错是没有配置正确的用户名和密码。
点击add来添加。
4.3.2 添加git(我这里是码云)的用户名,密码
4.3.3 构建触发器:
4.4.4 post steps选择:
Invoke top-level Maven targets:
选择已安装的maven,和填写需要执行的命令。
clean install -Dmaven.test.skip=true
然后选择: Execute shell
填写shell脚本:
#进入项目路径
cd /usr/my/tomcat/source/appfilm
#清空项目目录
rm -rf ./*
#拷贝并删除jenkins生成的war包(默认在/root/.jenkins/workspace/项目名称/target/war包名称)
cp -rf /root/.jenkins/workspace/app_film/target/appfilm.war ./
#杀掉这个项目的tomcat进程
kill -9 `ps aux | grep tomcat_appfilm | grep -v grep | awk '{print $2}'`
#解压war包
unzip -o appfilm.war
#这一句是为了防止报错,有时候Jenkins会发脾气,集成失败。
export BUILD_ID=doNotKillme
#启动tomcat
sh /usr/my/tomcat/tomcat_appfilm/bin/startup.sh
晴天比较好,阴天和雨天就表示最近失败了。
写的比较长,图片也比较多,按照这样来的话,应该没问题的。
我把打包后的war放到这个目录,你也可以放到webapp下,这样就不需要清空目录,只删除指定的文件就可以了。
/usr/my/tomcat/source
关于更改tomcat加载源码的目录,只要修改tomcat/conf/server.xml
<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Context path="/" docBase="/opt/source/xxx" debug="0" allowLinking="true" reloadable ="false" crossContext="true" /><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" --><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /></Host>
docBase 就是你源码的目录,把war包放到这个目录再unzip就可以了。
5. 异常
另外说一下最近遇到的错误:
Build step 'Invoke top-level Maven targets' marked build as failure ERROR: Maven JVM terminated unexpectedly with exit code 137
看了配置,并没有问题。百度了一下,说是服务器内存不够了。
free -h
#查看剩余内存,只剩100多M了,肯定不够用了。。。
echo 1 > /proc/sys/vm/drop_caches
#清理网页缓存
echo 2 > /proc/sys/vm/drop_caches
#清理应用缓存
echo 3 > /proc/sys/vm/drop_caches
#都清
没有太好的办法,目前就是每次集成之前清理内存....
如果有什么好的办法,记得告诉我。。。谢谢