Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署
目标:jenkins上点构建(也可以自动检查代码变化自动构建)》》》项目部署完成。
一、安装jenkins
1.下载jenkins
这里我选择的是war包安装jenkins,简单不伤脑,别的博客写的jenkins版本都很旧,没用最新的,写个比较新的配置2.20版。
官网:https://jenkins.io/index.html
WAR包下载地址:之前两个链接已经失效
可在http://mirrors.tuna.tsinghua.edu.cn/jenkins/war选择要下的jenkins包
或http://archives.jenkins-ci.org/war/2.2/jenkins.war下载
2.安装jdk环境
最新的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 没账号注册一个,很快的
前版本的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
jdk-8u121-linux-x64.tar.gz
这里选择Linux64位后缀tar.gz的复制下载链接,在服务器上解压配置环境变量vim /etc/profile写在最后面
JAVA_HOME=/data/java/jdk的目录名字 #java目录是我创建的,把jdk包解压到里面,这个写解压位置的绝对路径
CLASSPATH=$JAVA_HOME/lib/
PATH=$JAVA_HOME/bin:$PATH #谨慎,这里PATH写错了会发现命令都得打绝对路径才能用,悲催
export PATH JAVA_HOME CLASSPATH
配置没问题完成保存,source /etc/profile让配置的环境变量生效,这时候可以打命令java -version看看版本,是不是出java version "1.8.0_***",如果是1.6什么的说明没生效,看看解压的路径。
3.安装tomcat
下载地址:http://mirrors.hust.edu.cn/apache/tomcat 选择tomcat进行下载
这个什么版本都可以,别太旧了,旧的会有漏洞,解压完成试试能不能用,tomcat目录里面bin目录下,./catalina.sh
start启动,访问一下,不能访问基本都是防火墙问题,能出现tom猫界面就可以停了,可以./catalina.sh
stop,也可以找到进程pid,kill -9
pid号,进到webapps目录里面删除所有,把之前的jenkins.war拷进来,启动tomcat。我用的8080端口访问地址为http://公网地址:8080/jenkins
在服务器上面cat /root/.jenkins/secrets/initialAdminPassword会出现让输入的密码,一串数字字母,多等一会到出现下面界面,喝了口水,三分钟过去了,出现了接下来的界面
这个就是说推荐安装还是自己选,需要的包后面可以装,我点了第一个,知道用什么插件点第二个也可以这样装的包少一点。安装的插件都在/root/.jenkins/plugins/下面。
开始使用,点击就会进来
如果没有设置用户进入,admin用户登录还不知道密码是什么,是/root/.jenkins/secrets/initialAdminPassword这个里面的密码,http://这个地方打ip:8080/jenkins/user/admin/configure修改admin密码,也可以点系统管理,在里面找管理用户,点屏幕中上方的admin进去最下面修改密码保存。
二、安装Maven(用来构建项目)
官网地址:http://maven.apache.org/download.cgi
下载地址:apache-maven-3.3.9-bin.tar.gz
配置环境变量:vim /etc/profile 写到最后,我用的3.3.3的版本
export M2_HOME=/data/apache-maven-3.3.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
三、安装git
下载地址:https://github.com/git/git/releases
下载地址想下载可以下载,然后编译安装,git主要是用于jenkins用git命令获取我们自己搭建的gitlab上面的代码,yum
install
git的话,是跟下图配置一样,一定要看好git可以用的命令绝对路径在哪里,源码安装有的的是在/usr/local/git/bin/git,如果写到/usr/local/git会报错,你可以试下/usr/local/git/bin/git
--version,要有返回值。
四、配置jenkins
jenkins因为配置原因出错千千万,一步一报错,天天有惊喜,下面配置是把坑都填好的。
1.添加插件
选择可选插件,过滤搜索,git plugin 插件如果按教程来推荐安装已经安装了,装后面俩就好
选择直接安装也可以,重启后安装也可以,用什么功能搜一下安装没,没安装装上就好,我看了已经安装的,比自己选安装的安装的多很多。。。
很多教程都装Deploy to Container Plugin,这个可以把包从运行的tomcat的项目http地址上直接发到项目服务器的目录下,windows上我试了可以,linux这个东西没用它,都是linux服务器scp过去就好了,windows上面包发过去了不会写脚本,还是shell脚本简单。
2.工具配置
jdk别名叫啥都可以,路径写对,写你jdk环境变量配置的路径,写错了会出现ERROR: Failed to parse POMs java.io.IOException: Cannot run program***错误
git的地址要写的是git这个命令的地址不是目录的地址,yum装的自然是/usr/bin/git,之前不是yum装的装的写/usr/local/git报错找不到git命令,在服务器各种试git都没问题,看配置以为jenkins看不见呢,装了好几个版本的jenkins,找了N久才找到应该写/usr/local/git/bin/git
写完保存就好,接下来系统配置
3.系统配置
这个没有话看一下上面的插件,没安装maven的插件就没有这个配置
这个配置费劲九牛二虎之力,在N次报错后遍寻错误无解时候,在系统提供的英文文档里面偶然看到其中一个回答,好长好长看到其中一句,试了试竟然成功了,沃德天!
五、构建项目
点击新建,出现下图,名字随便起,选择构建一个maven项目
连接git,我们是自己搭的gitlab(gitlab安装中文版),需要在gitlab上搜索ssh或者key,找到一个ssh keys字样的,把jenkins服务器的公钥放在上面,另外
这个里面添加一个jenkins服务器root用户的私钥,添加不了的话按下面的添加也可以
发现gitlab服务器的私钥也可以,估计是因为gitlab页面上也放了gitlab的公钥,看来配对的公私钥就可以,有兴趣的可以试试。
选择这个这里面可以写脚本,我下面写这个相当于脚本里的命令去远程执行另一个脚本
写完好久了,今天jenkins做了一个迁移,完善前面的,把后面的再补上
如图,后面的功能都是用脚本写的,jenkins和org互相做了免密登录,在jenkins上可以直接用/usr/bin/ssh root@org的ip "要执行的命令"
/bin/bash /dat****/org.sh 在org上执行这个脚本
过程:jenkins调用git把Gitlab上的代码下载到jenkins服务器,maven构建成war包,调用ssh运行shell脚本完成备份,停服务,清webapps,拷war包到tomcat下,起服务,说起来好简单啊。。。
自己摸索着搭,各种找错误,搭了两星期才搭好,今天迁到别的服务器上几个小时就搞定了,经过几个月的使用,jenkins确实是自动化的利器,写好脚本一键搞定
看完基本就熟悉jenkins了,实践出真知,还是自己做一遍试试。
2018-04-17更新:
*** 应评论要求把shell脚本贴出来,不贴是因为写的low,希望大家指点(rm命令前面加了#小心使用)***

- #!/bin/bash
- #引入了系统环境变量,这样系统环境变量里面没有export声明的也可以用
- source /etc/profile
- sj=`date +%m-%d-%H%M`
- #开始先打印个时间到日志
- echo `date` >> /tmp/xxx.log
- #备份一下当前的项目,名字用xxx代替
- tar -zcPf /data/bf/xxx_ROOT_$sj.tar.gz /data/xxx_tomcat/webapps/ROOT >>/dev/null
- echo "tomcat备份成功,开始拷war包" >> /tmp/xxx.log
- #在/data/bf里面处理完再放到tomcat下,感觉停服务的时间短一些
- #rm -rf /data/bf/ROOT/*
- #下面咋变绿了。。。。
/usr/bin/scp root@172.x.x.7:/root/.jenkins/workspace/xxx/target/xxx.war /data/bf/ROOT/ROOT.war- echo "开始解压,替换配置文件" >> /tmp/xxx.log
- unzip /data/bf/ROOT/ROOT.war -d /data/bf/ROOT >>/dev/null
- sleep 10
- /bin/cp -a /data/bf/app-config.properties /data/bf/ROOT/WEB-INF/classes/app-config.properties
- #rm -rf /data/bf/ROOT/ROOT.war
- echo "停止服务"
- tomcat_pid=`/usr/sbin/lsof -i:8000 | awk -F" " NR==2'{print $2}'`
- kill -9 $tomcat_pid
- #rm -rf /data/xxx_tomcat/webapps/*
- /bin/cp -a /data/bf/ROOT /data/xxx_tomcat/webapps/
- echo "启动服务" >> /tmp/xxx.log
- /data/xxx_tomcat/bin/catalina.sh start &
- sleep 10
- re_pid=`/usr/sbin/lsof -i:8000 | awk -F" " NR==1'{print $2}'`
- if [ $re_pid == "PID" ];then
- echo "tomcat自动部署成功"
- #因为是jenkins执行的,上面这行是在jenkins上看的,下面是放到日志里
- echo "tomcat重启成功" >> /tmp/xxx.log
- else
- echo "tomcat自动部署失败"
- echo "tomcat重启失败" >> /tmp/xxx.log
- #发邮件的py可以在网上搜到很多,改改就可以用,用咳咳的企业邮的话微信会同步收到邮件哈哈哈,直接做到了微信提醒
- /usr/bin/python2.7 /root/sendmail.py
- fi

转自
Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署) - 漫风满画楼 - 博客园 https://www.cnblogs.com/cheng95/p/6542036.html
Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】的更多相关文章
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结
系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...
- 【linux下多实例Tomcat+Nginx+redis+mysql环境搭建】
一.搭建环境之前最好自己先创建一个文件夹,再次文件夹下在创建文件夹来安放项目包和Tomcat等应用以及性能测试监控的文件 1.项目存放地址: mkdir export (创建一个文件),mkdir a ...
- Jenkins+Maven+Git CI环境搭建手册
Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...
- 一步一步教你如何在linux下配置apache+tomcat(转)
一步一步教你如何在linux下配置apache+tomcat 一.安装前准备. 1. 所有组件都安装到/usr/local/e789目录下 2. 解压缩命令:tar —vxzf 文件名(. ...
- Linux下如何查看tomcat是否安装、启动、文件路径、进程ID
Linux下如何查看tomcat是否安装.启动.文件路径.进程ID 在Linux系统下,Tomcat使用命令的操作! 检测是否有安装了Tomcat: rpm -qa|grep tomcat 查看Tom ...
- Linux下如何查看tomcat是否启动/系统日志等
Linux下如何查看tomcat是否启动/系统日志等 查看tomcat是否启动 ps -ef | grep tomcat 或者 ps -ef | grep java 启动tomcat(在tomca ...
- Linux下定时备份MySQL数据库的Shell脚本
Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...
随机推荐
- hibernate HQL查询参数设置
Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: Prepa ...
- python 管道 事件(Event) 信号量 进程池(map/同步/异步)回调函数
####################总结######################## 管道:是进程间通信的第二种方式,但是不推荐使用,因为管道会导致数据不安全的情况出现 事件:当我运行主进程的 ...
- CSS3 vmax的用法
1. calc() calc():在流体布局上,可以通过calc()计算得到元素的宽度. 2. vw/vh/vmin/vmax的使用 vw/vh/vmin/vmax是视窗单位,也是相对单位.相对的不是 ...
- Docker 容器管理
单一容器管理 容器的标识符 每个容器被创建后都会分配一个CONTAINER_ID作为容器的唯一标识符,后续的启动.停止等操作都通过CONTAINER_ID来完成的. CONTAINER_ID很难记忆, ...
- Oracle分析函数-rank() over(partition by...order by...)
select *from ( SELECT t.s#,---学号 t.c#,---课程号 T.SCCORE, ---成绩 RANK() OVER(PARTITION BY t.c# ORDER BY ...
- js静态方法与实例方法定义,js回调方法定义
主要为了回调方法,随便把静态言法和实例方法也回顾一下. <script type="text/javascript"> var fun = { //下面是静态方法(第一 ...
- 查看swap占用情况
查看swap被占用的情况 #!/bin/bash # Get current swap usage for all running processes # Erik Ljungstrom 27/05/ ...
- python练习实例2--------构造数据类型
有如下数据类型 cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567'] locatio ...
- ArcGIS 常见错误
1. 平面坐标转为大地坐标出错 提示是:找不到相关的要素 2. 当发现Shape文件或者Mdb内的文件有问题时,可以先将Shape文件导出,然后再导入,或许就可以解决其中的问题.
- ueditor 百度编辑器图片上传 接 node.js 及一些前端自定义
百度编辑器 用node.js 做服务端 demo 大神已整理的 记录一下 以作参考 https://github.com/netpi/ueditor 1. 前端图片工具栏上传input file在这里 ...