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自动化部署)【转】的更多相关文章

  1. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  2. Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  3. 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

    系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...

  4. 【linux下多实例Tomcat+Nginx+redis+mysql环境搭建】

    一.搭建环境之前最好自己先创建一个文件夹,再次文件夹下在创建文件夹来安放项目包和Tomcat等应用以及性能测试监控的文件 1.项目存放地址: mkdir export (创建一个文件),mkdir a ...

  5. Jenkins+Maven+Git CI环境搭建手册

    Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...

  6. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  7. Linux下如何查看tomcat是否安装、启动、文件路径、进程ID

    Linux下如何查看tomcat是否安装.启动.文件路径.进程ID 在Linux系统下,Tomcat使用命令的操作! 检测是否有安装了Tomcat: rpm -qa|grep tomcat 查看Tom ...

  8. Linux下如何查看tomcat是否启动/系统日志等

    Linux下如何查看tomcat是否启动/系统日志等 查看tomcat是否启动 ps -ef | grep tomcat  或者  ps -ef | grep java 启动tomcat(在tomca ...

  9. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

随机推荐

  1. flask 过滤器

    作用的对象是jinja2模版中的变量({{}}) 参考链接: http://jinja.pocoo.org/docs/2.9/templates/#builtin-filters 内置过滤器 字符串操 ...

  2. MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解

    MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Mycat介绍 1>.什么是Mycat Mycat背后是 ...

  3. 使用Nexus配置Maven私有仓库

    使用Nexus配置Maven私有仓库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装配置Nexus 1>.下载nexus 下载地址:https://www.sonat ...

  4. JAVA核心技术I---JAVA基础知识(命令行)

    一:命令行编译文件 手动在c:\temp创建cn.com.test.Man.java –即c:\temp\cn\com\test\Man.java –c:\temp可以替换成任何路径,后续命令同样替换 ...

  5. Dev-Tips

    186 Chrome DevTools: How to use Logpoints for quicker JavaScript debugging You can use the new Logpo ...

  6. Node.js学习入门

    Node.js是什么 Node.js是一个可以允许我们在服务器端运行JavaScript代码的程序. 这是什么意思呢?通常,我们写的JavaScript代码都是在浏览器中运行的. 实际上,浏览器就是一 ...

  7. Spring Boot 2程序不能加载 com.mysql.jdbc.Driver 问题

    用Spring Boot Starter 向导生成了一个很简单SpringBoot程序, 用到了 MySQL, 总是下面不能加载 Mysql driver class 错误. Cannot load ...

  8. Retrofit提交Json

    1.APIService为自定义接口类, 定义@Headers @Headers({"Content-Type: application/json","Accept: a ...

  9. ****** 二十八 ******、软设笔记【数据库】-分布式数据库、特点、数据存储、DBMS组成

    分布式数据库    一.分布式数据库        分布式数据库由一组数据组成,这些数据物理上分布在计算机网络的不同结点(场地)上,逻辑上是属于同一个系统.每个结点可以执行局部应用,也能通过网络通信子 ...

  10. Ubuntu中在服务器和本机之间传递文件

    首先可以通过root进入到服务器中,(登录方法在下面讲解)为自己创建一个用户. useradd的选项: 选项: -b, --base-dir BASE_DIR 新账户的主目录的基目录 -c, --co ...