jenkins自动化部署

目标:jenkins上点构建(也可以自动检查代码变化自动构建)》》》项目部署完成。

一、安装jenkins

1.下载jenkins

这里我选择的是war包安装jenkins,简单不伤脑,别的博客写的jenkins版本都很旧,没用最新的,写个比较新的配置2.20版。

  官网:https://jenkins.io/index.html

  WAR包下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.20/jenkins.war

http://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.32.3/jenkins.war

2.安装jdk环境

最新的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.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-7/v7.0.75/bin/apache-tomcat-7.0.75.tar.gz

  这个什么版本都可以,别太旧了,旧的会有漏洞,解压完成试试能不能用,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/下面。

直接选择continue as admin

开始使用,点击就会进来

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可以用的命令绝对路径在哪里,yum装的在/usr/bin/git,你可以试下/usr/bin/git --version,不管是1.7版还是2.3版能用就可以。

四、配置jenkins

jenkins因为配置原因出错千千万,一步一报错,天天有惊喜,下面配置是把坑都填好的。

1.添加插件

选择可选插件,过滤搜索

选择直接安装也可以,重启后安装也可以,用什么功能搜一下安装没,没安装装上就好,我看了已经安装的,比自己选安装的安装的多很多。。。

很多教程都装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.系统配置

这个配置费劲九牛二虎之力,在N次报错后遍寻错误无解时候,在系统提供的英文文档里面偶然看到其中一个回答,好长好长看到其中一句,试了试竟然成功了,沃德天!

五、构建项目

点击新建,出现下图,名字随便起,选择构建一个maven项目

连接git,我们是自己搭的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确实是自动化的利器,写好脚本一键搞定

Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)的更多相关文章

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

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

  2. Linux下的Jenkins+Tomcat+Maven+Git+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. 一步一步教你如何在linux下配置apache+tomcat(转)

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

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

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

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

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

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

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

  9. linux下apache和tomcat整合

    一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...

随机推荐

  1. iOS开发之计算文字尺寸

    /** *  计算文字尺寸 * *  @param text    需要计算尺寸的文字 *  @param font    文字的字体 *  @param maxSize 文字的最大尺寸 */ - ( ...

  2. 豆瓣电影Top250基本信息抓取

    豆瓣电影Top250基本信息抓取 最近想看电影,但是想看一些有营养的,所以就去豆瓣上看电影评分,但是豆瓣上的评分没有排序,所以就用python把网站内容爬下来了,然后按评分做了排序.具体代码参见git ...

  3. 请一定记得升级java虚拟机

    对于吃货出身又需要保持体重的我,出门一定要带男票,因为这样就可以把见到的好吃的都买给他吃,就当是自己吃了[汗].偶尔做梦还是会梦到自己一个角落里偷吃东西,听到有脚步声,抬起头,大哭起来:“我饿了.”  ...

  4. C++ 拷贝构造函数、拷贝赋值运算符、析构函数

    每一次都会忘,做个笔记吧.想到哪里写到哪里. 拷贝构造函数 第一个参数必须是自身类类型的引用,且任何额外参数都有默认值.(为什么必须是引用?见后解释) 合成拷贝构造函数:如果我们没有为一个类定义拷贝构 ...

  5. PMP和PRINCE2应该选择哪个?光环国际项目管理认证

    对于项目管理课程的选择,我们不能盲目地做选择,一定要从自身实际出发.从来都没有更好的课程,只有更合适自己的课程. 那么,如何选择合适自己的项目管理课程呢? 让我们从PMP与PRINCE2之间的差异开始 ...

  6. iOS 一个方法首次安装滚播图 展示应用简介

    //第一次安装时会有引导页展示  非第一次直接进入应用页 if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"isOne&q ...

  7. 性能测试培训:WebSocket协议的接口性能之Jmeter

    性能测试培训:WebSocket协议的接口性能之Jmeter poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试开 ...

  8. Oracle常见错误集锦

    1.ORA-12560:TNS:协议适配器错误 OracleService<SID>服务没有启动 2. ORA-12541:TNS:无监听程序 Oracle<ORACLE_HOME& ...

  9. mysql 免安装版 + sqlyog 安装 步骤 --- 发的有点晚

    总有些朋友不会安装mysql,其实软件安装不是学习mysql的重点,基本上也就安装一次,工作后一般公司里也不会让你安装,如果非要安装,百度一下就行了.安装版本百度上有许多,下面就提供一个免安装版的步骤 ...

  10. 【学而思】利用shouldComponentUpdate钩子函数优化react性能以及引入immutable库的必要性

    凡是参阅过react官方英文文档的童鞋大体上都能知道对于一个组件来说,其state的改变(调用this.setState()方法)以及从父组件接受的props发生变化时,会导致组件重渲染,正所谓&qu ...