您的位置:首页 > 运维架构 > Tomcat

Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网

2017-07-18 15:06 1031 查看
Jenkins一种持续集成的工具,持续集成好处千万多,最重要的一条是自动化,避免我们做重复操作,我这里只讲持续集成自动化部署war到线上,其它什么定时编译,检查代码什么的,自己有空去研究。

jenkins有2种安装方式:

1.下载msi直接安装到本地

2.下载war,用java -jar jenkins.war方式启动。这种方式更灵活,可以将war放到阿里云上,然后在阿里云上搭建个持续集成环境。

去https://jenkins.io/上下载jenkins.war,最新的jenkins.war是2.70版本,他需要java8,其实最稳定版本是2.60.1,它可以在java7环境上跑。

下载msi安装包,一路下一步,最后安装成功会自动占用8080端口,直接在浏览器里访问http://localhost:8080/即可打,然后设置密码,创建帐号,注意这个帐号是本地帐号,只能在本机上使用,千万别以为是线上帐号哦。

安装环境:

1.Java7

2.点击“系统设置”->”管理插件”->“可选插件”里搜索安装几个插件

2.1 maven 插件



2.2 svn插件



2.3 deploy插件



2.4 publish Over SSH插件,连接线上环境使用的插件



其它插件根据需要下载安装,一般现在就够了,想学其它功能,宁可多下也不可少下。

3.参数配置,系统管理->系统配置

主目录配置:指定从svn下载下来的代码存放位置:



Publish over SSH:连接外网,自动上传及其它linux命令



Global Tool Configuration配置:

4.1Maven Configuration配置:



4.2.JDK安装,注意最好不选点“自动安装”,直接选 本机java安装环境目录:



4.3 git配置,如果有需要就配置:



4.4 maven配置,不用选“自动安装”,配置maven环境:



至此全局配置完成,我们就可以环境项目持续集成了。

5.1新建工程,填个项目名,然后选择maven项目



5.2填项目名称,及描述



5.3  Maven Info Plugin Configuration配置,选“丢弃旧的构建”



5.4 源代码管理,选择subversion,填帐号及密码



5.5 如果在构建一个项目之前需要构建其它项目,那么就需要选“Pre Steps”,如果没有则跳过这一步。



填参数Goals:clean install

POM:XXX/pom.xml

JVM Options:-Xmx1024m





5.6 Build要构建的项目

Goals and options :clean package -Pstage -Dmaven.test.skip=true

设置maven配置文件





 5.6.重头戏,自动化部署到外网:

“增加构建后操作步骤”选:“Send build artifacts over SSH”





Name:即在系统设置里配的服务器地址

Source files:要上传的文件,这里指定上传的是war,YUI_ADM_WAR/target/*.war

Remove prefix:指定需要过滤的文件夹,YUI_ADM_WAR/target/

Remote directory:指定将war上传到服务器哪个目录,/usr/local/tomcat/newWarBack

Exec command:上传完成后要执行的linux命令

 

PROJECT_NAME=adm
TOMCAT_VERSION=apache-tomcat-7.0.68-1
TOMCAT_HOME="/usr/local/tomcat/"$TOMCAT_VERSION""
echo "backup"
cp  "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war  /usr/local/tomcat/oldWarBack/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war

#检查一下,删除5天前的war包文件,
find/usr/local/tomcat/oldWarBack -mtime +10 -type f -name *.war -exec rm -rf {} \;

echo "over"
cp  /usr/local/tomcat/newWarBack/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/  

ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9
cd "$TOMCAT_HOME"/webapps  
echo "remover war file"  
rm -rf  "$PROJECT_NAME"
cd "$TOMCAT_HOME"/bin  
echo "start tomcat"  
./startup.sh  


强制杀死tomcat进程,删除已经部署过的war文件夹(注意不是war文件而是war部署生成的文件夹),执行启动tomcat命令。



ps:注意这是由本地上传到外网的命令,但走SSH上传是很慢的.有时jenkins和服务器和要运行的服务器在一起,就可以不用上传,可以只执行shell命令不上传文件,使用cp命令复制了.如下:








Source files , Remove prefix,Remote directory都设为空,只保留Exec command,加上cp命令实现linux内网传输,完整命令如下:

cp /home/cy/jenkinsws/workspace/oil_stage_adm/src/master/base/YUI_ADM_WAR/target/*.war  /usr/local/tomcat/newWarBack

PROJECT_NAME=adm
TOMCAT_VERSION=apache-tomcat-7.0.68-1
TOMCAT_HOME="/usr/local/tomcat/"$TOMCAT_VERSION""
echo "backup"
cp  "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war  /usr/local/tomcat/oldWarBack/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war

#检查一下,删除5天前的war包文件,
find/usr/local/tomcat/oldWarBack -mtime +10 -type f -name *.war -exec rm -rf {} \;

echo "over"
cp  /usr/local/tomcat/newWarBack/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/

ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9
cd "$TOMCAT_HOME"/webapps
echo "remover war file"
rm -rf  "$PROJECT_NAME"
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh


5.7.执行立即构建:

当输出如下时则表示已经构建完成



6.重启: http://localhost:8080/restart

退出:http://localhost:8080/exit

就是在浏览器里输入回车即可。

7.备注

启动成功后访问地址:

访问:http://127.0.0.1:8080/jenkint报Problem accessing /jenkins/. Reason: HTTP ERROR 404

解决办案:这是一个Jenkins的Bug。临时解决方法是:在浏览器中手工输入:http://<ip>:<port>

。不要访问"/jenkins"这个路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐